plugins { id "java-library" id "org.jetbrains.kotlin.jvm" id "org.springframework.boot.auto-configuration" id "org.springframework.boot.conventions" id "org.springframework.boot.deployed" id "org.springframework.boot.optional-dependencies" } description = "Spring Boot AutoConfigure" dependencies { api(project(":spring-boot-project:spring-boot")) optional("com.atomikos:transactions-jdbc") optional("com.atomikos:transactions-jta") optional("com.fasterxml.jackson.core:jackson-databind") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") optional("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") optional("com.fasterxml.jackson.module:jackson-module-parameter-names") optional("com.google.code.gson:gson") optional("com.hazelcast:hazelcast") optional("com.hazelcast:hazelcast-spring") optional("com.h2database:h2") optional("com.nimbusds:oauth2-oidc-sdk") optional("com.oracle.database.jdbc:ojdbc8") optional("com.oracle.database.jdbc:ucp") optional("com.samskivert:jmustache") optional("com.sun.mail:jakarta.mail") optional("de.flapdoodle.embed:de.flapdoodle.embed.mongo") optional("io.lettuce:lettuce-core") optional("io.projectreactor.netty:reactor-netty-http") optional("io.r2dbc:r2dbc-spi") optional("io.r2dbc:r2dbc-pool") optional("io.rsocket:rsocket-core") optional("io.rsocket:rsocket-transport-netty") optional("io.undertow:undertow-servlet") { exclude group: "org.jboss.spec.javax.annotation", module: "jboss-annotations-api_1.3_spec" exclude group: "org.jboss.spec.javax.servlet", module: "jboss-servlet-api_4.0_spec" } optional("io.undertow:undertow-websockets-jsr") { exclude group: "org.jboss.spec.javax.annotation", module: "jboss-annotations-api_1.3_spec" exclude group: "org.jboss.spec.javax.servlet", module: "jboss-servlet-api_4.0_spec" exclude group: "org.jboss.spec.javax.websocket", module: "jboss-websocket-api_1.1_spec" } optional("jakarta.jms:jakarta.jms-api") optional("jakarta.mail:jakarta.mail-api") optional("jakarta.json.bind:jakarta.json.bind-api") optional("jakarta.persistence:jakarta.persistence-api") optional("jakarta.transaction:jakarta.transaction-api") optional("jakarta.validation:jakarta.validation-api") optional("jakarta.ws.rs:jakarta.ws.rs-api") optional("javax.cache:cache-api") optional("javax.money:money-api") optional("net.sf.ehcache:ehcache") optional("org.apache.activemq:activemq-broker") { exclude group: "org.apache.geronimo.specs", module: "geronimo-j2ee-management_1.1_spec" exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_1.1_spec" } optional("org.apache.activemq:artemis-jms-client") { exclude group: "commons-logging", module: "commons-logging" exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_2.0_spec" exclude group: "org.apache.geronimo.specs", module: "geronimo-json_1.0_spec" } optional("org.apache.activemq:artemis-jms-server") { exclude group: "commons-logging", module: "commons-logging" exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_2.0_spec" exclude group: "org.apache.geronimo.specs", module: "geronimo-json_1.0_spec" exclude group: "org.apache.geronimo.specs", module: "geronimo-jta_1.1_spec" } optional("org.apache.commons:commons-dbcp2") { exclude group: "commons-logging", module: "commons-logging" } optional("org.apache.httpcomponents.client5:httpclient5") optional("org.apache.httpcomponents.core5:httpcore5-reactive") optional("org.apache.kafka:kafka-streams") optional("org.apache.solr:solr-solrj") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.apache.tomcat.embed:tomcat-embed-core") optional("org.apache.tomcat.embed:tomcat-embed-el") optional("org.apache.tomcat.embed:tomcat-embed-websocket") optional("org.apache.tomcat:tomcat-jdbc") optional("org.apiguardian:apiguardian-api") optional("org.codehaus.groovy:groovy-templates") optional("com.github.ben-manes.caffeine:caffeine") optional("com.github.mxab.thymeleaf.extras:thymeleaf-extras-data-attribute") optional("com.sendgrid:sendgrid-java") { exclude group: "commons-logging", module: "commons-logging" } optional("com.unboundid:unboundid-ldapsdk") optional("com.zaxxer:HikariCP") optional("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect") optional("org.aspectj:aspectjweaver") optional("org.cache2k:cache2k-spring") optional("org.eclipse.jetty:jetty-webapp") { exclude group: "javax.servlet", module: "javax.servlet-api" } optional("org.eclipse.jetty:jetty-reactive-httpclient") optional("org.eclipse.jetty.websocket:javax-websocket-server-impl") { exclude group: "javax.annotation", module: "javax.annotation-api" exclude group: "javax.servlet", module: "javax.servlet-api" exclude group: "javax.websocket", module: "javax.websocket-api" exclude group: "javax.websocket", module: "javax.websocket-client-api" exclude group: "org.eclipse.jetty", module: "jetty-jndi" } optional("org.ehcache:ehcache") optional("org.elasticsearch.client:elasticsearch-rest-client") { exclude group: "commons-logging", module: "commons-logging" } optional("org.elasticsearch.client:elasticsearch-rest-client-sniffer") { exclude group: "commons-logging", module: "commons-logging" } optional("org.elasticsearch.client:elasticsearch-rest-high-level-client") { exclude group: "commons-logging", module: "commons-logging" } optional("org.flywaydb:flyway-core") optional("org.flywaydb:flyway-sqlserver") optional("org.freemarker:freemarker") optional("org.glassfish.jersey.core:jersey-server") optional("org.glassfish.jersey.containers:jersey-container-servlet-core") optional("org.glassfish.jersey.containers:jersey-container-servlet") optional("org.glassfish.jersey.ext:jersey-spring5") optional("org.glassfish.jersey.media:jersey-media-json-jackson") optional("org.hibernate:hibernate-core") { exclude group: "javax.activation", module: "javax.activation-api" exclude group: "javax.persistence", module: "javax.persistence-api" exclude group: "javax.xml.bind", module: "jaxb-api" exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" } optional("org.hibernate:hibernate-jcache") { exclude group: "javax.activation", module: "javax.activation-api" exclude group: "javax.persistence", module: "javax.persistence-api" exclude group: "javax.xml.bind", module: "jaxb-api" exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" } optional("org.hibernate.validator:hibernate-validator") optional("org.infinispan:infinispan-component-annotations") optional("org.infinispan:infinispan-jcache") { exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" } optional("org.infinispan:infinispan-spring5-embedded") { exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" } optional("org.influxdb:influxdb-java") optional("org.jooq:jooq") { exclude group: "javax.xml.bind", module: "jaxb-api" } optional("org.liquibase:liquibase-core") { exclude group: "javax.xml.bind", module: "jaxb-api" } optional("org.messaginghub:pooled-jms") { exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_2.0_spec" } optional("org.mongodb:mongodb-driver-reactivestreams") optional("org.mongodb:mongodb-driver-sync") optional("org.quartz-scheduler:quartz") optional("org.springframework:spring-jdbc") optional("org.springframework.integration:spring-integration-core") optional("org.springframework.integration:spring-integration-jdbc") optional("org.springframework.integration:spring-integration-jmx") optional("org.springframework.integration:spring-integration-rsocket") optional("org.springframework:spring-jms") optional("org.springframework:spring-orm") optional("org.springframework:spring-tx") optional("org.springframework:spring-web") optional("org.springframework:spring-websocket") optional("org.springframework:spring-webflux") optional("org.springframework:spring-webmvc") optional("org.springframework.batch:spring-batch-core") optional("org.springframework.data:spring-data-couchbase") { exclude group: "com.querydsl", module: "querydsl-apt" exclude group: "javax.annotation", module: "javax.annotation-api" } optional("org.springframework.data:spring-data-envers") { exclude group: "javax.activation", module: "javax.activation-api" exclude group: "javax.persistence", module: "javax.persistence-api" exclude group: "javax.xml.bind", module: "jaxb-api" exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" } optional("org.springframework.data:spring-data-jpa") optional("org.springframework.data:spring-data-rest-webmvc") optional("org.springframework.data:spring-data-cassandra") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.springframework.data:spring-data-elasticsearch") { exclude group: "org.elasticsearch.client", module: "transport" } optional("org.springframework.data:spring-data-jdbc") optional("org.springframework.data:spring-data-ldap") optional("org.springframework.data:spring-data-mongodb") optional("org.springframework.data:spring-data-neo4j") optional("org.springframework.data:spring-data-r2dbc") optional("org.springframework.data:spring-data-redis") optional("org.springframework.graphql:spring-graphql") optional("org.springframework.hateoas:spring-hateoas") optional("org.springframework.security:spring-security-acl") optional("org.springframework.security:spring-security-config") optional("org.springframework.security:spring-security-data") { exclude group: "javax.xml.bind", module: "jaxb-api" } optional("org.springframework.security:spring-security-messaging") optional("org.springframework.security:spring-security-oauth2-client") optional("org.springframework.security:spring-security-oauth2-jose") optional("org.springframework.security:spring-security-oauth2-resource-server") optional("org.springframework.security:spring-security-rsocket") optional("org.springframework.security:spring-security-saml2-service-provider") optional("org.springframework.security:spring-security-web") optional("org.springframework.session:spring-session-core") optional("org.springframework.session:spring-session-data-mongodb") optional("org.springframework.session:spring-session-data-redis") optional("org.springframework.session:spring-session-hazelcast") { exclude group: "javax.annotation", module: "javax.annotation-api" } optional("org.springframework.session:spring-session-jdbc") optional("org.springframework.amqp:spring-rabbit") optional("org.springframework.amqp:spring-rabbit-stream") optional("org.springframework.kafka:spring-kafka") optional("org.springframework.ws:spring-ws-core") optional("org.thymeleaf:thymeleaf") optional("org.thymeleaf:thymeleaf-spring5") optional("org.thymeleaf.extras:thymeleaf-extras-java8time") optional("org.thymeleaf.extras:thymeleaf-extras-springsecurity5") optional("redis.clients:jedis") testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation("ch.qos.logback:logback-classic") testImplementation("commons-fileupload:commons-fileupload") testImplementation("com.atomikos:transactions-jms") testImplementation("com.github.h-thurow:simple-jndi") testImplementation("com.ibm.db2:jcc") testImplementation("com.jayway.jsonpath:json-path") testImplementation("com.mysql:mysql-connector-j") testImplementation("com.querydsl:querydsl-core") testImplementation("com.squareup.okhttp3:mockwebserver") testImplementation("com.sun.xml.messaging.saaj:saaj-impl") testImplementation("io.projectreactor:reactor-test") testImplementation("io.r2dbc:r2dbc-h2") testImplementation("jakarta.json:jakarta.json-api") testImplementation("jakarta.xml.ws:jakarta.xml.ws-api") testImplementation("org.apache.johnzon:johnzon-jsonb") testImplementation("org.apache.logging.log4j:log4j-to-slf4j") testImplementation("org.apache.tomcat.embed:tomcat-embed-jasper") testImplementation("org.assertj:assertj-core") testImplementation("org.awaitility:awaitility") testImplementation("org.hsqldb:hsqldb") testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("org.mockito:mockito-core") testImplementation("org.mockito:mockito-junit-jupiter") testImplementation("org.skyscreamer:jsonassert") testImplementation("org.springframework:spring-test") testImplementation("org.springframework.graphql:spring-graphql-test") testImplementation("org.springframework.kafka:spring-kafka-test") testImplementation("org.springframework.security:spring-security-test") testImplementation("org.testcontainers:cassandra") testImplementation("org.testcontainers:couchbase") testImplementation("org.testcontainers:elasticsearch") testImplementation("org.testcontainers:junit-jupiter") testImplementation("org.testcontainers:mongodb") testImplementation("org.testcontainers:neo4j") testImplementation("org.testcontainers:testcontainers") testImplementation("org.yaml:snakeyaml") testRuntimeOnly("jakarta.management.j2ee:jakarta.management.j2ee-api") testRuntimeOnly("org.jetbrains.kotlin:kotlin-reflect") } tasks.named("checkSpringConfigurationMetadata").configure { exclusions = [ "spring.datasource.dbcp2.*", "spring.datasource.hikari.*", "spring.datasource.oracleucp.*", "spring.datasource.tomcat.*", "spring.groovy.template.configuration.*" ] }