{
  "ticket": "U24 #61",
  "generatedAt": "2026-10-26T10:49:34.058226+08:00",
  "environment": {
    "os": "macOS-27.0.1-arm64-arm-64bit",
    "arch": "arm64",
    "jdk": "openjdk version \"21.0.11\" 2026-04-21 LTS\nOpenJDK Runtime Environment (build 21.0.11+11-LTS)\nOpenJDK 64-Bit Server VM (build 21.0.11+11-LTS, mixed mode, sharing)",
    "boot": "4.0.9",
    "framework": "7.0.10",
    "security": "7.0.8",
    "micrometerCore": "1.16.8",
    "micrometerTracingBridgeOtel": "1.6.8",
    "opentelemetrySdkTrace": "1.55.0"
  },
  "input": "JAVA_HOME=$(/usr/libexec/java_home -v21) python3 labs/boot-readiness/run.py",
  "latestInvocation": {
    "id": "2026-10-26T10:49:09.153514+08:00",
    "finishedAt": "2026-10-26T10:49:34.080215+08:00"
  },
  "artifactSha256": "7e02e07278b3494248e802ab386dbdfa65b75db4d82977c51abde502f145c09a",
  "runnerSha256": "bb45697f76ac183e2ab3a6035933b02331da29538c68691553fd6520508e104f",
  "exitCode": 0,
  "rawLogs": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u24/runtime",
  "results": [
    {
      "name": "probe-build",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:09.182622+08:00",
      "finishedAt": "2026-10-26T10:49:19.048289+08:00",
      "exitCode": 0,
      "input": [
        "mvn",
        "-q",
        "-pl",
        "probe",
        "test"
      ],
      "observed": {
        "conditions": {
          "jdbc": {
            "mysql": true,
            "default": "com.zaxxer.hikari.HikariDataSource",
            "conditions": {
              "org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType'",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: io.r2dbc.spi.ConnectionFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration$EmbeddedDatabaseConfiguration": {
                "matched": false,
                "outcomes": [
                  "EmbeddedDatabaseCondition: EmbeddedDataSource spring.datasource.url is set"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration$PooledDataSourceConfiguration": {
                "matched": true,
                "outcomes": [
                  "PooledDataSourceCondition: 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'",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: javax.sql.DataSource,javax.sql.XADataSource; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration$PooledDataSourceConfiguration#jdbcConnectionDetails": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceCheckpointRestoreConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.crac.Resource'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceConfiguration$Dbcp2": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.apache.commons.dbcp2.BasicDataSource'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceConfiguration$Generic": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.datasource.type) did not find property 'spring.datasource.type'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceConfiguration$Hikari": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'com.zaxxer.hikari.HikariDataSource'",
                  "OnPropertyCondition: @ConditionalOnProperty (spring.datasource.type=com.zaxxer.hikari.HikariDataSource) matched",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceConfiguration$OracleUcp": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required classes 'oracle.ucp.jdbc.PoolDataSourceImpl', 'oracle.jdbc.OracleConnection'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceConfiguration$Tomcat": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSource'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourceJmxConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.jmx.enabled=true) did not find property 'spring.jmx.enabled'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourcePoolMetadataProvidersConfiguration$CommonsDbcp2PoolDataSourceMetadataProviderConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.apache.commons.dbcp2.BasicDataSource'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourcePoolMetadataProvidersConfiguration$HikariPoolDataSourceMetadataProviderConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'com.zaxxer.hikari.HikariDataSource'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourcePoolMetadataProvidersConfiguration$OracleUcpPoolDataSourceMetadataProviderConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required classes 'oracle.ucp.jdbc.PoolDataSource', 'oracle.jdbc.OracleConnection'"
                ]
              },
              "org.springframework.boot.jdbc.autoconfigure.DataSourcePoolMetadataProvidersConfiguration$TomcatDataSourcePoolMetadataProviderConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSource'"
                ]
              }
            },
            "userBackoff": true,
            "twoCandidatesNoTemplate": true,
            "missingClassSkipped": true
          },
          "cache": {
            "withoutEnableCaching": true,
            "simple": true,
            "userBackoff": true,
            "redisCacheTtlSeconds": 5,
            "redisRead": true,
            "ownedKeyDeleted": true
          },
          "mongodb": {
            "database": "u24_d56620aa33e746ea8924646f3c023c7d",
            "ping": true,
            "template": "org.springframework.data.mongodb.core.MongoTemplate",
            "connectionDetails": "u24_d56620aa33e746ea8924646f3c023c7d",
            "conditions": {
              "org.springframework.boot.data.mongodb.autoconfigure.DataMongoAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'com.mongodb.client.MongoClient', 'org.springframework.data.mongodb.core.MongoTemplate'"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.DataMongoAutoConfiguration#mongoConnectionDetails": {
                "matched": false,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails; SearchStrategy: all) found beans of type 'org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails' mongoConnectionDetails"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.DataMongoConfiguration#mappingMongoConverter": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.data.mongodb.core.convert.MongoConverter; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.DataMongoConfiguration#mongoCustomConversions": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.data.mongodb.core.convert.MongoCustomConversions; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.DataMongoConfiguration#mongoManagedTypes": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.data.mongodb.MongoManagedTypes; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.DataMongoConfiguration#mongoMappingContext": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.data.mongodb.core.mapping.MongoMappingContext; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.MongoDatabaseFactoryConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnSingleCandidate (types: com.mongodb.client.MongoClient; SearchStrategy: all) found a single bean 'mongo'; @ConditionalOnMissingBean (types: org.springframework.data.mongodb.MongoDatabaseFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.MongoDatabaseFactoryDependentConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnBean (types: org.springframework.data.mongodb.MongoDatabaseFactory; SearchStrategy: all) found bean 'mongoDatabaseFactory'"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.MongoDatabaseFactoryDependentConfiguration#gridFsTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.data.mongodb.gridfs.GridFsOperations; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.mongodb.autoconfigure.MongoDatabaseFactoryDependentConfiguration#mongoTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.data.mongodb.core.MongoOperations; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'com.mongodb.client.MongoClient'",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.data.mongodb.MongoDatabaseFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration#mongo": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: com.mongodb.client.MongoClient; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration#mongoConnectionDetails": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration$MongoClientSettingsConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: com.mongodb.MongoClientSettings; SearchStrategy: all) did not find any beans"
                ]
              }
            },
            "userBackoff": true,
            "missingClassSkipped": true,
            "writes": 0
          },
          "redis": {
            "ping": true,
            "database": 13,
            "default": "org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory",
            "conditions": {
              "org.springframework.boot.data.redis.autoconfigure.DataRedisAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.data.redis.core.RedisOperations'"
                ]
              },
              "org.springframework.boot.data.redis.autoconfigure.DataRedisAutoConfiguration#redisConnectionDetails": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.data.redis.autoconfigure.DataRedisConnectionDetails; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.redis.autoconfigure.DataRedisAutoConfiguration#redisTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnSingleCandidate (types: org.springframework.data.redis.connection.RedisConnectionFactory; SearchStrategy: all) found a single bean 'redisConnectionFactory'; @ConditionalOnMissingBean (names: redisTemplate; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.data.redis.autoconfigure.DataRedisAutoConfiguration#stringRedisTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnSingleCandidate (types: org.springframework.data.redis.connection.RedisConnectionFactory; SearchStrategy: all) found a single bean 'redisConnectionFactory'; @ConditionalOnMissingBean (types: org.springframework.data.redis.core.StringRedisTemplate; SearchStrategy: all) did not find any beans"
                ]
              }
            },
            "factoryBackoff": true,
            "differentNameDoesNotBackoff": true,
            "missingClassSkipped": true
          }
        },
        "messaging": {
          "pulsar": {
            "defaultTemplate": true,
            "conditions": {
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'org.apache.pulsar.client.api.PulsarClient', 'org.springframework.pulsar.core.PulsarTemplate'"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#cachingPulsarProducerFactory": {
                "matched": true,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.pulsar.producer.cache.enabled=true) matched",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.PulsarProducerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarAdministration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.PulsarAdministration; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarClient": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.apache.pulsar.client.api.PulsarClient; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarClientFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.PulsarClientFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarConnectionDetails": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.pulsar.autoconfigure.PulsarConnectionDetails; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarConsumerFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.PulsarConsumerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarContainerFactoryCustomizers": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.pulsar.autoconfigure.PulsarContainerFactoryCustomizers; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarFunctionAdministration": {
                "matched": true,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.pulsar.function.enabled=true) matched",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.function.PulsarFunctionAdministration; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarListenerContainerFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (names: pulsarListenerContainerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarProducerFactory": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.pulsar.producer.cache.enabled=false) did not find property 'spring.pulsar.producer.cache.enabled'"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarReaderContainerFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (names: pulsarReaderContainerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarReaderFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.PulsarReaderFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarSchemaResolver": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.SchemaResolver; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.PulsarTemplate<?>; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarTopicBuilder": {
                "matched": true,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.pulsar.defaults.topic.enabled=true) matched",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.PulsarTopicBuilder; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarTopicResolver": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.pulsar.core.TopicResolver; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration#pulsarTransactionManager": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.pulsar.transaction.enabled=true) did not find property 'spring.pulsar.transaction.enabled'"
                ]
              },
              "org.springframework.boot.pulsar.autoconfigure.PulsarAutoConfiguration$EnablePulsarConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (names: org.springframework.pulsar.config.internalPulsarListenerAnnotationProcessor,org.springframework.pulsar.config.internalPulsarReaderAnnotationProcessor; SearchStrategy: all) did not find any beans"
                ]
              }
            },
            "clientFactoryBackoff": true,
            "missingClassSkipped": true,
            "brokerMessages": 0
          },
          "amqp": {
            "defaultTemplate": true,
            "conditions": {
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.amqp.rabbit.annotation.EnableRabbit'"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration#directRabbitListenerContainerFactory": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.rabbitmq.listener.type=direct) did not find property 'spring.rabbitmq.listener.type'"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration#directRabbitListenerContainerFactoryConfigurer": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.DirectRabbitListenerContainerFactoryConfigurer; SearchStrategy: all) did not find any beans",
                  "OnThreadingCondition: @ConditionalOnThreading found PLATFORM"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration#directRabbitListenerContainerFactoryConfigurerVirtualThreads": {
                "matched": false,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.DirectRabbitListenerContainerFactoryConfigurer; SearchStrategy: all) found beans of type 'org.springframework.boot.amqp.autoconfigure.DirectRabbitListenerContainerFactoryConfigurer' directRabbitListenerContainerFactoryConfigurer"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration#simpleRabbitListenerContainerFactory": {
                "matched": true,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.rabbitmq.listener.type=simple) matched",
                  "OnBeanCondition: @ConditionalOnMissingBean (names: rabbitListenerContainerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration#simpleRabbitListenerContainerFactoryConfigurer": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.SimpleRabbitListenerContainerFactoryConfigurer; SearchStrategy: all) did not find any beans",
                  "OnThreadingCondition: @ConditionalOnThreading found PLATFORM"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration#simpleRabbitListenerContainerFactoryConfigurerVirtualThreads": {
                "matched": false,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.SimpleRabbitListenerContainerFactoryConfigurer; SearchStrategy: all) found beans of type 'org.springframework.boot.amqp.autoconfigure.SimpleRabbitListenerContainerFactoryConfigurer' simpleRabbitListenerContainerFactoryConfigurer"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAnnotationDrivenConfiguration$EnableRabbitConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (names: org.springframework.amqp.rabbit.config.internalRabbitListenerAnnotationProcessor; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'org.springframework.amqp.rabbit.core.RabbitTemplate', 'com.rabbitmq.client.Channel'"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitConnectionFactoryCreator#rabbitConnectionDetails": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.RabbitConnectionDetails; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitConnectionFactoryCreator#rabbitConnectionFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.amqp.rabbit.connection.ConnectionFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitConnectionFactoryCreator#rabbitConnectionFactoryBeanConfigurer": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.RabbitConnectionFactoryBeanConfigurer; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitConnectionFactoryCreator#rabbitConnectionFactoryConfigurer": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.CachingConnectionFactoryConfigurer; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitMessagingTemplateConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.amqp.rabbit.core.RabbitMessagingTemplate'",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.amqp.rabbit.core.RabbitMessagingTemplate; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitMessagingTemplateConfiguration#rabbitMessagingTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnSingleCandidate (types: org.springframework.amqp.rabbit.core.RabbitTemplate; SearchStrategy: all) found a single bean 'rabbitTemplate'"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitTemplateConfiguration#amqpAdmin": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.rabbitmq.dynamic=true) found different value in property 'spring.rabbitmq.dynamic'"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitTemplateConfiguration#rabbitTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnSingleCandidate (types: org.springframework.amqp.rabbit.connection.ConnectionFactory; SearchStrategy: all) found a single bean 'rabbitConnectionFactory'; @ConditionalOnMissingBean (types: org.springframework.amqp.rabbit.core.RabbitOperations; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitAutoConfiguration$RabbitTemplateConfiguration#rabbitTemplateConfigurer": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.amqp.autoconfigure.RabbitTemplateConfigurer; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.amqp.autoconfigure.RabbitStreamConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.springframework.rabbit.stream.config.StreamRabbitListenerContainerFactory'"
                ]
              }
            },
            "factoryBackoff": true,
            "twoFactoriesNoTemplate": true,
            "missingClassSkipped": true,
            "brokerMessages": 0
          },
          "jms": {
            "noFactoryNoTemplate": true,
            "conditions": {
              "org.springframework.boot.jms.autoconfigure.JmsAnnotationDrivenConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.jms.annotation.EnableJms'"
                ]
              },
              "org.springframework.boot.jms.autoconfigure.JmsAnnotationDrivenConfiguration$JndiConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnJndiCondition: @ConditionalOnJndi JNDI environment is not available"
                ]
              },
              "org.springframework.boot.jms.autoconfigure.JmsAutoConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'jakarta.jms.Message', 'org.springframework.jms.core.JmsTemplate'",
                  "OnBeanCondition: @ConditionalOnBean (types: jakarta.jms.ConnectionFactory; SearchStrategy: all) did not find any beans of type jakarta.jms.ConnectionFactory"
                ]
              },
              "org.springframework.boot.jms.autoconfigure.JmsClientConfigurations$JmsClientConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.jms.core.JmsClient'"
                ]
              },
              "org.springframework.boot.jms.autoconfigure.JmsClientConfigurations$MessagingTemplateConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.jms.core.JmsMessagingTemplate'"
                ]
              }
            },
            "fixtureFactoryEnablesTemplate": true,
            "userBackoff": true,
            "missingClassSkipped": true,
            "brokerMessages": 0,
            "factoryFixture": "non-connecting dynamic proxy; any connection attempt fails"
          },
          "kafka": {
            "defaultTemplate": true,
            "conditions": {
              "org.springframework.boot.kafka.autoconfigure.KafkaAnnotationDrivenConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.kafka.annotation.EnableKafka'"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAnnotationDrivenConfiguration#kafkaListenerContainerFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (names: kafkaListenerContainerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAnnotationDrivenConfiguration#kafkaListenerContainerFactoryConfigurer": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.kafka.autoconfigure.ConcurrentKafkaListenerContainerFactoryConfigurer; SearchStrategy: all) did not find any beans",
                  "OnThreadingCondition: @ConditionalOnThreading found PLATFORM"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAnnotationDrivenConfiguration#kafkaListenerContainerFactoryConfigurerVirtualThreads": {
                "matched": false,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.kafka.autoconfigure.ConcurrentKafkaListenerContainerFactoryConfigurer; SearchStrategy: all) found beans of type 'org.springframework.boot.kafka.autoconfigure.ConcurrentKafkaListenerContainerFactoryConfigurer' kafkaListenerContainerFactoryConfigurer"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAnnotationDrivenConfiguration$EnableKafkaConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (names: org.springframework.kafka.config.internalKafkaListenerAnnotationProcessor; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.kafka.core.KafkaTemplate'"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaAdmin": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.kafka.core.KafkaAdmin; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaConnectionDetails": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.boot.kafka.autoconfigure.KafkaConnectionDetails; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaConsumerFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.kafka.core.ConsumerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaJaasInitializer": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.kafka.jaas.enabled=true) did not find property 'spring.kafka.jaas.enabled'"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaProducerFactory": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.kafka.core.ProducerFactory; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaProducerListener": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.kafka.support.ProducerListener; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaRetryTopicConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnBooleanProperty (spring.kafka.retry.topic.enabled=true) did not find property 'spring.kafka.retry.topic.enabled'"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaTemplate": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.kafka.core.KafkaTemplate; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration#kafkaTransactionManager": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.kafka.producer.transaction-id-prefix) did not find property 'spring.kafka.producer.transaction-id-prefix'"
                ]
              },
              "org.springframework.boot.kafka.autoconfigure.KafkaStreamsAnnotationDrivenConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.apache.kafka.streams.StreamsBuilder'"
                ]
              }
            },
            "producerFactoryBackoff": true,
            "missingClassSkipped": true,
            "brokerMessages": 0
          },
          "restClient": {
            "prototypeBuilder": true,
            "userBuilderBackoff": true,
            "missingClassSkipped": true
          }
        },
        "session": {
          "session": {
            "default": "org.springframework.session.data.redis.RedisSessionRepository",
            "ownedKeys": 1,
            "cookieSaveRead": true,
            "ownedKeysDeleted": true,
            "conditions": {
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.session.Session'",
                  "OnWebApplicationCondition: @ConditionalOnWebApplication (required) found ConfigurableWebEnvironment",
                  "OnWebApplicationCondition: @ConditionalOnWebApplication (required) found 'session' scope"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ReactiveSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnWebApplicationCondition: did not find reactive web application classes"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnWebApplicationCondition: found 'session' scope"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$EmbeddedWebServerConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnWarDeploymentCondition: Application is deployed as a WAR file."
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$RememberMeServicesConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.springframework.security.web.authentication.RememberMeServices'"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$WarDeploymentConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnWarDeploymentCondition: Application is deployed as a WAR file."
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$WarDeploymentConfiguration#cookieSerializer": {
                "matched": true,
                "outcomes": [
                  "DefaultCookieSerializerCondition: AnyNestedCondition 1 matched 1 did not; NestedCondition on SessionAutoConfiguration.DefaultCookieSerializerCondition.CookieHttpSessionIdResolverAvailable found non-matching nested conditions @ConditionalOnBean (types: org.springframework.session.web.http.CookieHttpSessionIdResolver; SearchStrategy: all) did not find any beans of type org.springframework.session.web.http.CookieHttpSessionIdResolver, @ConditionalOnBean (types: org.springframework.session.web.http.CookieHttpSessionIdResolver; SearchStrategy: all) did not find any beans of type org.springframework.session.web.http.CookieHttpSessionIdResolver; NestedCondition on SessionAutoConfiguration.DefaultCookieSerializerCondition.NoComponentsAvailable @ConditionalOnMissingBean (types: org.springframework.session.web.http.HttpSessionIdResolver,org.springframework.session.web.http.CookieSerializer; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionRepositoryFilterConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnBean (types: org.springframework.session.web.http.SessionRepositoryFilter; SearchStrategy: all) found bean 'springSessionRepositoryFilter'"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.session.Session'"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ReactiveRedisSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'org.springframework.data.redis.connection.ReactiveRedisConnectionFactory', 'org.springframework.session.data.redis.ReactiveRedisSessionRepository'",
                  "OnWebApplicationCondition: did not find reactive web application classes"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'org.springframework.data.redis.core.RedisTemplate', 'org.springframework.session.data.redis.RedisIndexedSessionRepository'",
                  "OnWebApplicationCondition: found 'session' scope",
                  "OnBeanCondition: @ConditionalOnBean (types: org.springframework.data.redis.connection.RedisConnectionFactory; SearchStrategy: all) found bean 'redisConnectionFactory'; @ConditionalOnMissingBean (types: org.springframework.session.SessionRepository; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration$DefaultRedisSessionConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.session.data.redis.repository-type=default) matched"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration$IndexedRedisSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.session.data.redis.repository-type=indexed) found different value in property 'spring.session.data.redis.repository-type'"
                ]
              }
            }
          },
          "sessionIndexed": {
            "indexed": "org.springframework.session.data.redis.RedisIndexedSessionRepository",
            "configureActionNone": true,
            "ownedKeysDeleted": true
          },
          "sessionTakeover": {
            "userBackoff": true,
            "conditions": {
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.session.Session'",
                  "OnWebApplicationCondition: @ConditionalOnWebApplication (required) found ConfigurableWebEnvironment",
                  "OnWebApplicationCondition: @ConditionalOnWebApplication (required) found 'session' scope"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ReactiveSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnWebApplicationCondition: did not find reactive web application classes"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnWebApplicationCondition: found 'session' scope"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$EmbeddedWebServerConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnWarDeploymentCondition: Application is deployed as a WAR file."
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$RememberMeServicesConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass did not find required class 'org.springframework.security.web.authentication.RememberMeServices'"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$WarDeploymentConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnWarDeploymentCondition: Application is deployed as a WAR file."
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration$ServletSessionConfiguration$WarDeploymentConfiguration#cookieSerializer": {
                "matched": true,
                "outcomes": [
                  "DefaultCookieSerializerCondition: AnyNestedCondition 1 matched 1 did not; NestedCondition on SessionAutoConfiguration.DefaultCookieSerializerCondition.CookieHttpSessionIdResolverAvailable found non-matching nested conditions @ConditionalOnBean (types: org.springframework.session.web.http.CookieHttpSessionIdResolver; SearchStrategy: all) did not find any beans of type org.springframework.session.web.http.CookieHttpSessionIdResolver, @ConditionalOnBean (types: org.springframework.session.web.http.CookieHttpSessionIdResolver; SearchStrategy: all) did not find any beans of type org.springframework.session.web.http.CookieHttpSessionIdResolver; NestedCondition on SessionAutoConfiguration.DefaultCookieSerializerCondition.NoComponentsAvailable @ConditionalOnMissingBean (types: org.springframework.session.web.http.HttpSessionIdResolver,org.springframework.session.web.http.CookieSerializer; SearchStrategy: all) did not find any beans"
                ]
              },
              "org.springframework.boot.session.autoconfigure.SessionRepositoryFilterConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnBeanCondition: @ConditionalOnBean (types: org.springframework.session.web.http.SessionRepositoryFilter; SearchStrategy: all) did not find any beans of type org.springframework.session.web.http.SessionRepositoryFilter"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration": {
                "matched": true,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required class 'org.springframework.session.Session'"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ReactiveRedisSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'org.springframework.data.redis.connection.ReactiveRedisConnectionFactory', 'org.springframework.session.data.redis.ReactiveRedisSessionRepository'",
                  "OnWebApplicationCondition: did not find reactive web application classes"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnClassCondition: @ConditionalOnClass found required classes 'org.springframework.data.redis.core.RedisTemplate', 'org.springframework.session.data.redis.RedisIndexedSessionRepository'",
                  "OnWebApplicationCondition: found 'session' scope",
                  "OnBeanCondition: @ConditionalOnMissingBean (types: org.springframework.session.SessionRepository; SearchStrategy: all) found beans of type 'org.springframework.session.SessionRepository' userRepository"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration$DefaultRedisSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.session.data.redis.repository-type=default) matched",
                  "AncestorsMatchedCondition: Ancestor org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration did not match"
                ]
              },
              "org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration$IndexedRedisSessionConfiguration": {
                "matched": false,
                "outcomes": [
                  "OnPropertyCondition: @ConditionalOnProperty (spring.session.data.redis.repository-type=indexed) found different value in property 'spring.session.data.redis.repository-type'",
                  "AncestorsMatchedCondition: Ancestor org.springframework.boot.session.data.redis.autoconfigure.SessionDataRedisAutoConfiguration$ServletRedisSessionConfiguration did not match"
                ]
              }
            }
          },
          "sessionClassCondition": {
            "missingClassSkipped": true
          }
        }
      }
    },
    {
      "name": "es8-dependency-tree",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:19.048712+08:00",
      "finishedAt": "2026-10-26T10:49:20.559662+08:00",
      "exitCode": 0,
      "input": [
        "mvn",
        "-f",
        "es8/pom.xml",
        "dependency:tree",
        "-Dincludes=org.springframework.boot:spring-boot-elasticsearch,co.elastic.clients:*"
      ]
    },
    {
      "name": "es8-run",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:20.559715+08:00",
      "finishedAt": "2026-10-26T10:49:22.406310+08:00",
      "exitCode": 0,
      "input": [
        "mvn",
        "-q",
        "-f",
        "es8/pom.xml",
        "compile",
        "spring-boot:run"
      ],
      "observed": {
        "bootDefaultRejected": true,
        "bootDefaultFailure": "[co/elastic/clients/transport/rest5_client/Rest5ClientTransport, co.elastic.clients.transport.rest5_client.Rest5ClientTransport]",
        "serverVersion": "8.19.23",
        "clientVersion": "8.19.23",
        "manualClientBean": true,
        "writes": 0,
        "transportClosed": true
      }
    },
    {
      "name": "server-build",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:22.406424+08:00",
      "finishedAt": "2026-10-26T10:49:23.980223+08:00",
      "exitCode": 0,
      "input": [
        "mvn",
        "-q",
        "-pl",
        "server",
        "package"
      ]
    },
    {
      "name": "default-security-observed",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "state": {
        "events": [
          "business-listening",
          "started",
          "runner-enter",
          "runner-exit",
          "ready"
        ],
        "readiness": "ACCEPTING_TRAFFIC",
        "liveness": "CORRECT",
        "infoBean": 0,
        "auditEndpointBean": 0,
        "auditRepository": 1,
        "buildProperties": 1,
        "defaultManagementChain": true,
        "defaultUsers": true,
        "authenticationAuditListener": true,
        "controlOperations": []
      },
      "health": {
        "groups": [
          "liveness",
          "readiness"
        ],
        "status": "UP"
      },
      "readinessProbe": {
        "status": "UP"
      }
    },
    {
      "name": "default-security",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:23.985144+08:00",
      "finishedAt": "2026-10-26T10:49:26.266826+08:00",
      "input": [
        "/Library/Java/JavaVirtualMachines/liberica-jdk-21.jdk/Contents/Home/bin/java",
        "-jar",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/boot-readiness/server/target/readiness-server-1.jar",
        "--lab.dependency-url=http://127.0.0.1:55665/dependency",
        "--lab.downstream-url=http://127.0.0.1:55665/echo",
        "--management.endpoints.web.exposure.include=health"
      ],
      "exitCode": 143,
      "reaped": true
    },
    {
      "name": "custom-runtime-observed",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "state": {
        "events": [
          "business-listening",
          "started",
          "runner-enter",
          "runner-exit",
          "ready"
        ],
        "readiness": "ACCEPTING_TRAFFIC",
        "liveness": "CORRECT",
        "infoBean": 1,
        "auditEndpointBean": 1,
        "auditRepository": 1,
        "buildProperties": 1,
        "defaultManagementChain": false,
        "defaultUsers": false,
        "authenticationAuditListener": true,
        "controlOperations": [
          "WRITE",
          "READ"
        ]
      },
      "info": {
        "build": {
          "artifact": "readiness-server",
          "name": "readiness-server",
          "time": "2026-10-26T02:49:23.234Z",
          "version": "1",
          "group": "study"
        }
      },
      "metric": {
        "availableTags": [
          {
            "tag": "outcome",
            "values": [
              "accepted"
            ]
          }
        ],
        "measurements": [
          {
            "statistic": "COUNT",
            "value": 3.0
          }
        ],
        "name": "u24.orders.accepted"
      },
      "auditTypes": [
        "AUTHENTICATION_FAILURE",
        "AUTHENTICATION_SUCCESS",
        "AUTHORIZATION_FAILURE",
        "U24_ORDER_REPLAY"
      ],
      "call": {
        "traceId": "11111111111111111111111111111111",
        "downstream": {
          "traceparent": "00-11111111111111111111111111111111-f9a3a86e088076cc-01",
          "customizer": "auto-customizer"
        },
        "bare": false
      },
      "bareCall": {
        "traceId": "3d9bb532364cbaf59c351a9ef26cf996",
        "downstream": {
          "traceparent": "",
          "customizer": ""
        },
        "bare": true
      },
      "readyz": {
        "status": "UP"
      },
      "livez": {
        "status": "UP"
      },
      "sdkSpans": [
        {
          "spanId": "a705b7a0fa606f8e",
          "traceId": "11111111111111111111111111111111",
          "parentId": "d83b66f992810298",
          "ended": true,
          "name": "authenticate usernamepassword",
          "kind": "INTERNAL"
        },
        {
          "spanId": "f352672114fef9a7",
          "traceId": "11111111111111111111111111111111",
          "parentId": "d83b66f992810298",
          "ended": true,
          "name": "authorize request",
          "kind": "INTERNAL"
        },
        {
          "spanId": "d83b66f992810298",
          "traceId": "11111111111111111111111111111111",
          "parentId": "d3002d5de9c3950e",
          "ended": true,
          "name": "security filterchain before",
          "kind": "INTERNAL"
        },
        {
          "spanId": "f9a3a86e088076cc",
          "traceId": "11111111111111111111111111111111",
          "parentId": "032d6b929cb9cfd1",
          "ended": true,
          "name": "http get",
          "kind": "CLIENT"
        },
        {
          "spanId": "032d6b929cb9cfd1",
          "traceId": "11111111111111111111111111111111",
          "parentId": "d3002d5de9c3950e",
          "ended": true,
          "name": "secured request",
          "kind": "INTERNAL"
        },
        {
          "spanId": "167f0c0e1a160b15",
          "traceId": "11111111111111111111111111111111",
          "parentId": "d3002d5de9c3950e",
          "ended": true,
          "name": "security filterchain after",
          "kind": "INTERNAL"
        },
        {
          "spanId": "d3002d5de9c3950e",
          "traceId": "11111111111111111111111111111111",
          "parentId": "2222222222222222",
          "ended": true,
          "name": "http get /lab/call",
          "kind": "SERVER"
        }
      ]
    },
    {
      "name": "custom-security",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:26.266983+08:00",
      "finishedAt": "2026-10-26T10:49:29.539914+08:00",
      "input": [
        "/Library/Java/JavaVirtualMachines/liberica-jdk-21.jdk/Contents/Home/bin/java",
        "-jar",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/boot-readiness/server/target/readiness-server-1.jar",
        "--lab.dependency-url=http://127.0.0.1:55665/dependency",
        "--lab.downstream-url=http://127.0.0.1:55665/echo",
        "--lab.custom-security=true",
        "--management.endpoints.web.exposure.include=health,info,metrics,env,auditevents,labcontrol",
        "--management.endpoint.health.probes.add-additional-paths=true"
      ],
      "exitCode": 143,
      "reaped": true
    },
    {
      "name": "readiness-timeline-observed",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "businessPort": "http://127.0.0.1:55707",
      "managementPort": "http://127.0.0.1:55708",
      "refusingProbe": {
        "status": "UP"
      },
      "events": [
        "business-listening",
        "management-listening",
        "started",
        "runner-enter",
        "runner-exit",
        "ready"
      ]
    },
    {
      "name": "readiness-timeline",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:29.583591+08:00",
      "finishedAt": "2026-10-26T10:49:32.183823+08:00",
      "input": [
        "/Library/Java/JavaVirtualMachines/liberica-jdk-21.jdk/Contents/Home/bin/java",
        "-jar",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/boot-readiness/server/target/readiness-server-1.jar",
        "--lab.dependency-url=http://127.0.0.1:55706/dependency",
        "--lab.downstream-url=http://127.0.0.1:55706/echo",
        "--management.server.port=0",
        "--lab.release-file=/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u24/runtime/release-104929.token",
        "--management.endpoints.web.exposure.include=health"
      ],
      "exitCode": 143,
      "reaped": true
    },
    {
      "name": "server-dependency-tree",
      "invocationId": "2026-10-26T10:49:09.153514+08:00",
      "startedAt": "2026-10-26T10:49:32.589240+08:00",
      "finishedAt": "2026-10-26T10:49:34.058108+08:00",
      "exitCode": 0,
      "input": [
        "mvn",
        "-pl",
        "server",
        "dependency:tree",
        "-Dincludes=org.springframework.boot:spring-boot-starter-parent,org.springframework.security:*,io.micrometer:*,io.opentelemetry:opentelemetry-sdk-trace"
      ]
    }
  ],
  "limits": [
    "Loopback real Boot/Security/Actuator/Micrometer/OTel SDK only; no external Collector, registry or K8s probe service is contacted",
    "Probes use a real dependency fixture and a controlled runner release file; timings are local bounded fixtures, not production startup SLAs",
    "No real Kafka/RabbitMQ/JMS/Pulsar broker, ES writes, Mongo writes or user Redis data are touched: probe fixtures prove wiring/back-off only",
    "Metrics/audit/tracing observations cover this ticket assertions, not cardinality budgets or retention policies of a production platform"
  ]
}
