parent
0690e870d2
commit
1eb98ba9f7
|
|
@ -76,6 +76,7 @@ include "spring-boot-project:spring-boot-jdbc"
|
|||
include "spring-boot-project:spring-boot-jetty"
|
||||
include "spring-boot-project:spring-boot-jms"
|
||||
include "spring-boot-project:spring-boot-jsonb"
|
||||
include "spring-boot-project:spring-boot-kafka"
|
||||
include "spring-boot-project:spring-boot-liquibase"
|
||||
include "spring-boot-project:spring-boot-mail"
|
||||
include "spring-boot-project:spring-boot-parent"
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ dependencies {
|
|||
optional(project(":spring-boot-project:spring-boot-jdbc"))
|
||||
optional(project(":spring-boot-project:spring-boot-jetty"))
|
||||
optional(project(":spring-boot-project:spring-boot-jsonb"))
|
||||
optional(project(":spring-boot-project:spring-boot-kafka"))
|
||||
optional(project(":spring-boot-project:spring-boot-liquibase"))
|
||||
optional(project(":spring-boot-project:spring-boot-mail"))
|
||||
optional(project(":spring-boot-project:spring-boot-reactor-netty"))
|
||||
|
|
|
|||
|
|
@ -23,10 +23,9 @@ import io.micrometer.core.instrument.binder.kafka.KafkaStreamsMetrics;
|
|||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.kafka.DefaultKafkaConsumerFactoryCustomizer;
|
||||
import org.springframework.boot.autoconfigure.kafka.DefaultKafkaProducerFactoryCustomizer;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.kafka.StreamsBuilderFactoryBeanCustomizer;
|
||||
import org.springframework.boot.kafka.autoconfigure.DefaultKafkaConsumerFactoryCustomizer;
|
||||
import org.springframework.boot.kafka.autoconfigure.DefaultKafkaProducerFactoryCustomizer;
|
||||
import org.springframework.boot.kafka.autoconfigure.StreamsBuilderFactoryBeanCustomizer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.kafka.config.StreamsBuilderFactoryBean;
|
||||
|
|
@ -45,7 +44,7 @@ import org.springframework.kafka.streams.KafkaStreamsMicrometerListener;
|
|||
* @author Eddú Meléndez
|
||||
* @since 2.1.0
|
||||
*/
|
||||
@AutoConfiguration(before = KafkaAutoConfiguration.class,
|
||||
@AutoConfiguration(beforeName = "org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration",
|
||||
after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
|
||||
@ConditionalOnClass({ KafkaClientMetrics.class, ProducerFactory.class })
|
||||
@ConditionalOnBean(MeterRegistry.class)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test;
|
|||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,6 @@ dependencies {
|
|||
optional("org.apache.commons:commons-dbcp2")
|
||||
optional("org.apache.httpcomponents.client5:httpclient5")
|
||||
optional("org.apache.httpcomponents.core5:httpcore5-reactive")
|
||||
optional("org.apache.kafka:kafka-streams")
|
||||
optional("org.apache.tomcat.embed:tomcat-embed-core")
|
||||
optional("org.apache.tomcat.embed:tomcat-embed-el")
|
||||
optional("org.apache.tomcat.embed:tomcat-embed-websocket")
|
||||
|
|
@ -222,7 +221,6 @@ dependencies {
|
|||
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") {
|
||||
exclude group: "com.sun.mail", module: "jakarta.mail"
|
||||
exclude group: "jakarta.platform", module: "jakarta.jakartaee-api"
|
||||
|
|
@ -263,7 +261,6 @@ dependencies {
|
|||
testImplementation("org.postgresql:postgresql")
|
||||
testImplementation("org.postgresql:r2dbc-postgresql")
|
||||
testImplementation("org.springframework.graphql:spring-graphql-test")
|
||||
testImplementation("org.springframework.kafka:spring-kafka-test")
|
||||
testImplementation("org.springframework.pulsar:spring-pulsar-cache-provider-caffeine")
|
||||
testImplementation("org.springframework.security:spring-security-test")
|
||||
testImplementation("org.yaml:snakeyaml")
|
||||
|
|
|
|||
|
|
@ -927,177 +927,6 @@
|
|||
"reason": "Narayana support has moved to third party starter."
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.listener.only-log-record-metadata",
|
||||
"type": "java.lang.Boolean",
|
||||
"defaultValue": true,
|
||||
"description": "Whether to suppress the entire record from being written to the log when retries are being attempted.",
|
||||
"deprecation": {
|
||||
"reason": "Use KafkaUtils#setConsumerRecordFormatter instead.",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.streams.cache-max-bytes-buffering",
|
||||
"type": "java.lang.Integer",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.streams.state-store-cache-max-size",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.streams.cache-max-size-buffering",
|
||||
"type": "java.lang.Integer",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.streams.state-store-cache-max-size",
|
||||
"level": "error",
|
||||
"since": "3.1.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.mustache.prefix",
|
||||
"defaultValue": "classpath:/templates/"
|
||||
|
|
|
|||
|
|
@ -58,7 +58,6 @@ org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration
|
|||
org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration
|
||||
org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration
|
||||
org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration
|
||||
org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
|
||||
org.springframework.boot.autoconfigure.ldap.embedded.EmbeddedLdapAutoConfiguration
|
||||
org.springframework.boot.autoconfigure.ldap.LdapAutoConfiguration
|
||||
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
|
||||
|
|
|
|||
|
|
@ -2005,6 +2005,7 @@ bom {
|
|||
"spring-boot-jetty",
|
||||
"spring-boot-jms",
|
||||
"spring-boot-jsonb",
|
||||
"spring-boot-kafka",
|
||||
"spring-boot-liquibase",
|
||||
"spring-boot-loader",
|
||||
"spring-boot-loader-classic",
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ dependencies {
|
|||
autoConfiguration(project(path: ":spring-boot-project:spring-boot-jetty", configuration: "autoConfigurationMetadata"))
|
||||
autoConfiguration(project(path: ":spring-boot-project:spring-boot-jms", configuration: "autoConfigurationMetadata"))
|
||||
autoConfiguration(project(path: ":spring-boot-project:spring-boot-jsonb", configuration: "autoConfigurationMetadata"))
|
||||
autoConfiguration(project(path: ":spring-boot-project:spring-boot-kafka", configuration: "autoConfigurationMetadata"))
|
||||
autoConfiguration(project(path: ":spring-boot-project:spring-boot-liquibase", configuration: "autoConfigurationMetadata"))
|
||||
autoConfiguration(project(path: ":spring-boot-project:spring-boot-mail", configuration: "autoConfigurationMetadata"))
|
||||
autoConfiguration(project(path: ":spring-boot-project:spring-boot-reactor-netty", configuration: "autoConfigurationMetadata"))
|
||||
|
|
@ -116,6 +117,7 @@ dependencies {
|
|||
configurationProperties(project(path: ":spring-boot-project:spring-boot-jdbc", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-jetty", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-jms", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-kafka", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-liquibase", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-mail", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-reactor-netty", configuration: "configurationPropertiesMetadata"))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright 2012-present the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License);
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
plugins {
|
||||
id "java-library"
|
||||
id "org.springframework.boot.auto-configuration"
|
||||
id "org.springframework.boot.configuration-properties"
|
||||
id "org.springframework.boot.deployed"
|
||||
id "org.springframework.boot.optional-dependencies"
|
||||
}
|
||||
|
||||
description = "Spring Boot Kafka"
|
||||
|
||||
dependencies {
|
||||
api(project(":spring-boot-project:spring-boot"))
|
||||
api("org.springframework.kafka:spring-kafka")
|
||||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
optional("org.apache.kafka:kafka-streams")
|
||||
|
||||
testImplementation(project(":spring-boot-project:spring-boot-test"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
||||
testImplementation("org.springframework.kafka:spring-kafka-test")
|
||||
|
||||
testRuntimeOnly("ch.qos.logback:logback-classic")
|
||||
}
|
||||
|
|
@ -14,13 +14,13 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Listener;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.Listener;
|
||||
import org.springframework.core.task.SimpleAsyncTaskExecutor;
|
||||
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
|
||||
import org.springframework.kafka.core.ConsumerFactory;
|
||||
|
|
@ -49,7 +49,7 @@ import org.springframework.kafka.transaction.KafkaAwareTransactionManager;
|
|||
* @author Eddú Meléndez
|
||||
* @author Thomas Kåsene
|
||||
* @author Moritz Halbritter
|
||||
* @since 1.5.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public class ConcurrentKafkaListenerContainerFactoryConfigurer {
|
||||
|
||||
|
|
@ -130,7 +130,6 @@ public class ConcurrentKafkaListenerContainerFactoryConfigurer {
|
|||
/**
|
||||
* Set the {@link ConsumerAwareRebalanceListener} to use.
|
||||
* @param rebalanceListener the rebalance listener.
|
||||
* @since 2.2
|
||||
*/
|
||||
void setRebalanceListener(ConsumerAwareRebalanceListener rebalanceListener) {
|
||||
this.rebalanceListener = rebalanceListener;
|
||||
|
|
@ -139,7 +138,6 @@ public class ConcurrentKafkaListenerContainerFactoryConfigurer {
|
|||
/**
|
||||
* Set the {@link CommonErrorHandler} to use.
|
||||
* @param commonErrorHandler the error handler.
|
||||
* @since 2.6.0
|
||||
*/
|
||||
public void setCommonErrorHandler(CommonErrorHandler commonErrorHandler) {
|
||||
this.commonErrorHandler = commonErrorHandler;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
|
|||
* Callback interface for customizing {@code DefaultKafkaConsumerFactory} beans.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
* @since 2.3.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface DefaultKafkaConsumerFactoryCustomizer {
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ import org.springframework.kafka.core.DefaultKafkaProducerFactory;
|
|||
* Callback interface for customizing {@code DefaultKafkaProducerFactory} beans.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
* @since 2.3.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface DefaultKafkaProducerFactoryCustomizer {
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
|
|
@ -36,11 +36,11 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails.Configuration;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Jaas;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Retry.Topic.Backoff;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaConnectionDetails.Configuration;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.Jaas;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.Retry.Topic.Backoff;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
@ -76,7 +76,7 @@ import org.springframework.util.StringUtils;
|
|||
* @author Phillip Webb
|
||||
* @author Andy Wilkinson
|
||||
* @author Scott Frederick
|
||||
* @since 1.5.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@ConditionalOnClass(KafkaTemplate.class)
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ import org.springframework.boot.ssl.SslBundle;
|
|||
* @author Moritz Halbritter
|
||||
* @author Andy Wilkinson
|
||||
* @author Phillip Webb
|
||||
* @since 3.1.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public interface KafkaConnectionDetails extends ConnectionDetails {
|
||||
|
||||
|
|
@ -40,7 +40,6 @@ public interface KafkaConnectionDetails extends ConnectionDetails {
|
|||
/**
|
||||
* Returns the SSL bundle.
|
||||
* @return the SSL bundle
|
||||
* @since 3.5.0
|
||||
*/
|
||||
default SslBundle getSslBundle() {
|
||||
return null;
|
||||
|
|
@ -49,7 +48,6 @@ public interface KafkaConnectionDetails extends ConnectionDetails {
|
|||
/**
|
||||
* Returns the security protocol.
|
||||
* @return the security protocol
|
||||
* @since 3.5.0
|
||||
*/
|
||||
default String getSecurityProtocol() {
|
||||
return null;
|
||||
|
|
@ -58,7 +56,6 @@ public interface KafkaConnectionDetails extends ConnectionDetails {
|
|||
/**
|
||||
* Returns the consumer configuration.
|
||||
* @return the consumer configuration
|
||||
* @since 3.5.0
|
||||
*/
|
||||
default Configuration getConsumer() {
|
||||
return Configuration.of(getBootstrapServers(), getSslBundle(), getSecurityProtocol());
|
||||
|
|
@ -67,7 +64,6 @@ public interface KafkaConnectionDetails extends ConnectionDetails {
|
|||
/**
|
||||
* Returns the producer configuration.
|
||||
* @return the producer configuration
|
||||
* @since 3.5.0
|
||||
*/
|
||||
default Configuration getProducer() {
|
||||
return Configuration.of(getBootstrapServers(), getSslBundle(), getSecurityProtocol());
|
||||
|
|
@ -76,7 +72,6 @@ public interface KafkaConnectionDetails extends ConnectionDetails {
|
|||
/**
|
||||
* Returns the admin configuration.
|
||||
* @return the admin configuration
|
||||
* @since 3.5.0
|
||||
*/
|
||||
default Configuration getAdmin() {
|
||||
return Configuration.of(getBootstrapServers(), getSslBundle(), getSecurityProtocol());
|
||||
|
|
@ -85,7 +80,6 @@ public interface KafkaConnectionDetails extends ConnectionDetails {
|
|||
/**
|
||||
* Returns the Kafka Streams configuration.
|
||||
* @return the Kafka Streams configuration
|
||||
* @since 3.5.0
|
||||
*/
|
||||
default Configuration getStreams() {
|
||||
return Configuration.of(getBootstrapServers(), getSslBundle(), getSecurityProtocol());
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
|
|
@ -59,7 +59,7 @@ import org.springframework.util.unit.DataSize;
|
|||
* @author Andy Wilkinson
|
||||
* @author Scott Frederick
|
||||
* @author Yanming Zhou
|
||||
* @since 1.5.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
@ConfigurationProperties("spring.kafka")
|
||||
public class KafkaProperties {
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -14,11 +14,11 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Ssl;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.Ssl;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.util.Assert;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.security.KeyStore;
|
||||
|
|
@ -34,7 +34,7 @@ import org.springframework.boot.ssl.SslBundle;
|
|||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Scott Frederick
|
||||
* @since 3.2.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public class SslBundleSslEngineFactory implements SslEngineFactory {
|
||||
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import org.springframework.kafka.config.StreamsBuilderFactoryBean;
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ import org.springframework.kafka.config.StreamsBuilderFactoryBean;
|
|||
* Callback interface for customizing {@code StreamsBuilderFactoryBean} beans.
|
||||
*
|
||||
* @author Eddú Meléndez
|
||||
* @since 2.3.2
|
||||
* @since 4.0.0
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface StreamsBuilderFactoryBeanCustomizer {
|
||||
|
|
@ -17,4 +17,4 @@
|
|||
/**
|
||||
* Auto-configuration for Apache Kafka.
|
||||
*/
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
|
@ -0,0 +1,247 @@
|
|||
{
|
||||
"properties": [
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.admin.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.admin.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.consumer.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.listener.only-log-record-metadata",
|
||||
"type": "java.lang.Boolean",
|
||||
"defaultValue": true,
|
||||
"description": "Whether to suppress the entire record from being written to the log when retries are being attempted.",
|
||||
"deprecation": {
|
||||
"reason": "Use KafkaUtils#setConsumerRecordFormatter instead.",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.producer.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.keystore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.key-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.keystore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the key store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.key-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.truststore-location",
|
||||
"type": "org.springframework.core.io.Resource",
|
||||
"description": "Location of the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.trust-store-location",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.ssl.truststore-password",
|
||||
"type": "java.lang.String",
|
||||
"description": "Store password for the trust store file.",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.ssl.trust-store-password",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.streams.cache-max-bytes-buffering",
|
||||
"type": "java.lang.Integer",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.streams.state-store-cache-max-size",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.streams.cache-max-size-buffering",
|
||||
"type": "java.lang.Integer",
|
||||
"deprecation": {
|
||||
"replacement": "spring.kafka.streams.state-store-cache-max-size",
|
||||
"level": "error",
|
||||
"since": "3.1.0"
|
||||
}
|
||||
}
|
||||
],
|
||||
"hints": [
|
||||
{
|
||||
"name": "spring.kafka.consumer.auto-offset-reset",
|
||||
"values": [
|
||||
{
|
||||
"value": "earliest",
|
||||
"description": "Automatically reset the offset to the earliest offset."
|
||||
},
|
||||
{
|
||||
"value": "latest",
|
||||
"description": "Automatically reset the offset to the latest offset."
|
||||
},
|
||||
{
|
||||
"value": "none",
|
||||
"description": "Throw exception to the consumer if no previous offset is found for the consumer's group."
|
||||
},
|
||||
{
|
||||
"value": "exception",
|
||||
"description": "Throw exception to the consumer."
|
||||
}
|
||||
],
|
||||
"providers": [
|
||||
{
|
||||
"name": "any"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.key-deserializer",
|
||||
"providers": [
|
||||
{
|
||||
"name": "handle-as",
|
||||
"parameters": {
|
||||
"target": "org.apache.kafka.common.serialization.Deserializer"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.consumer.value-deserializer",
|
||||
"providers": [
|
||||
{
|
||||
"name": "handle-as",
|
||||
"parameters": {
|
||||
"target": "org.apache.kafka.common.serialization.Deserializer"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.key-serializer",
|
||||
"providers": [
|
||||
{
|
||||
"name": "handle-as",
|
||||
"parameters": {
|
||||
"target": "org.apache.kafka.common.serialization.Serializer"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "spring.kafka.producer.value-serializer",
|
||||
"providers": [
|
||||
{
|
||||
"name": "handle-as",
|
||||
"parameters": {
|
||||
"target": "org.apache.kafka.common.serialization.Serializer"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.function.Function;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.Duration;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.kafka;
|
||||
package org.springframework.boot.kafka.autoconfigure;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
|
@ -22,11 +22,11 @@ import java.util.Map;
|
|||
import org.apache.kafka.common.config.SslConfigs;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Admin;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Cleanup;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.IsolationLevel;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Listener;
|
||||
import org.springframework.boot.context.properties.source.MutuallyExclusiveConfigurationPropertiesException;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.Admin;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.Cleanup;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.IsolationLevel;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaProperties.Listener;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.kafka.core.CleanupConfig;
|
||||
import org.springframework.kafka.core.KafkaAdmin;
|
||||
|
|
@ -31,6 +31,7 @@ dependencies {
|
|||
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-flyway"))
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-jdbc"))
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-kafka"))
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-liquibase"))
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
|
||||
|
|
@ -77,6 +78,7 @@ dependencies {
|
|||
optional(project(":spring-boot-project:spring-boot-elasticsearch"))
|
||||
optional(project(":spring-boot-project:spring-boot-flyway"))
|
||||
optional(project(":spring-boot-project:spring-boot-jdbc"))
|
||||
optional(project(":spring-boot-project:spring-boot-kafka"))
|
||||
optional(project(":spring-boot-project:spring-boot-liquibase"))
|
||||
optional(project(":spring-boot-project:spring-boot-tx"))
|
||||
optional("org.springframework:spring-test")
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import org.testcontainers.kafka.KafkaContainer;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
||||
import org.springframework.boot.testsupport.container.TestImage;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import org.testcontainers.kafka.ConfluentKafkaContainer;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
||||
import org.springframework.boot.testsupport.container.TestImage;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import org.testcontainers.junit.jupiter.Testcontainers;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
||||
import org.springframework.boot.testsupport.container.TestImage;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import org.testcontainers.redpanda.RedpandaContainer;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaAutoConfiguration;
|
||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
||||
import org.springframework.boot.testsupport.container.TestImage;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||
|
||||
import org.testcontainers.kafka.KafkaContainer;
|
||||
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaConnectionDetails;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||
|
||||
import org.testcontainers.kafka.ConfluentKafkaContainer;
|
||||
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaConnectionDetails;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||
|
||||
import org.testcontainers.containers.KafkaContainer;
|
||||
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaConnectionDetails;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||
|
||||
import org.testcontainers.redpanda.RedpandaContainer;
|
||||
|
||||
import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails;
|
||||
import org.springframework.boot.kafka.autoconfigure.KafkaConnectionDetails;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory;
|
||||
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource;
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ dependencies {
|
|||
dockerTestImplementation("org.testcontainers:kafka")
|
||||
|
||||
implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-json"))
|
||||
implementation("org.springframework.kafka:spring-kafka")
|
||||
implementation(project(":spring-boot-project:spring-boot-kafka"))
|
||||
|
||||
testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test"))
|
||||
testImplementation("org.awaitility:awaitility")
|
||||
|
|
|
|||
Loading…
Reference in New Issue