X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fpersistence%2Fkafka%2FKafkaServicesConfiguration.java;h=b0e777612fecd6fe59c2134ca0658b853fc3df0e;hb=6f8bd42a20085f186a27d2aeac8aedaf05a7e746;hp=b7eb711a68f872a95cb8ab8fffc6045a05ae19df;hpb=f87d3e2fea3ee107d050bedc18d66471ae0fdd7e;p=demos%2Fkafka%2Fchat diff --git a/src/test/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaServicesConfiguration.java b/src/test/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaServicesConfiguration.java index b7eb711a..b0e77761 100644 --- a/src/test/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaServicesConfiguration.java +++ b/src/test/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaServicesConfiguration.java @@ -22,6 +22,8 @@ import org.springframework.kafka.support.serializer.JsonSerializer; import java.time.Clock; import java.time.ZoneId; +import java.util.HashMap; +import java.util.Map; import java.util.Properties; @@ -68,11 +70,17 @@ public class KafkaServicesConfiguration @Bean Producer chatRoomChannelProducer( Properties defaultProducerProperties, + ChatBackendProperties chatBackendProperties, IntegerSerializer integerSerializer, JsonSerializer chatRoomSerializer) { + Map properties = new HashMap<>(); + defaultProducerProperties.forEach((key, value) -> properties.put(key.toString(), value)); + properties.put( + ProducerConfig.CLIENT_ID_CONFIG, + chatBackendProperties.getKafka().getClientIdPrefix() + "_CHATROOM_CHANNEL_PRODUCER"); return new KafkaProducer<>( - defaultProducerProperties, + properties, integerSerializer, chatRoomSerializer); } @@ -87,17 +95,25 @@ public class KafkaServicesConfiguration JsonSerializer chatRoomSerializer() { JsonSerializer serializer = new JsonSerializer<>(); + serializer.configure( + Map.of(JsonSerializer.ADD_TYPE_INFO_HEADERS, false), + false); return serializer; } @Bean Consumer chatRoomChannelConsumer( Properties defaultConsumerProperties, + ChatBackendProperties chatBackendProperties, IntegerDeserializer integerDeserializer, JsonDeserializer chatRoomDeserializer) { - Properties properties = new Properties(defaultConsumerProperties); - properties.setProperty( + Map properties = new HashMap<>(); + defaultConsumerProperties.forEach((key, value) -> properties.put(key.toString(), value)); + properties.put( + ConsumerConfig.CLIENT_ID_CONFIG, + chatBackendProperties.getKafka().getClientIdPrefix() + "_MESSAGE_CHANNEL_CONSUMER"); + properties.put( ConsumerConfig.GROUP_ID_CONFIG, "chat_room_channel"); return new KafkaConsumer<>( @@ -116,6 +132,12 @@ public class KafkaServicesConfiguration JsonDeserializer chatRoomDeserializer() { JsonDeserializer deserializer = new JsonDeserializer<>(); + deserializer.configure( + Map.of( + JsonDeserializer.USE_TYPE_INFO_HEADERS, false, + JsonDeserializer.VALUE_DEFAULT_TYPE, ChatRoomTo.class, + JsonDeserializer.TRUSTED_PACKAGES, getClass().getPackageName()), + false ); return deserializer; } @@ -143,11 +165,17 @@ public class KafkaServicesConfiguration @Bean Producer chatMessageChannelProducer( Properties defaultProducerProperties, + ChatBackendProperties chatBackendProperties, StringSerializer stringSerializer, JsonSerializer messageSerializer) { + Map properties = new HashMap<>(); + defaultProducerProperties.forEach((key, value) -> properties.put(key.toString(), value)); + properties.put( + ProducerConfig.CLIENT_ID_CONFIG, + chatBackendProperties.getKafka().getClientIdPrefix() + "_MESSAGE_CHANNEL_PRODUCER"); return new KafkaProducer<>( - defaultProducerProperties, + properties, stringSerializer, messageSerializer); } @@ -162,17 +190,25 @@ public class KafkaServicesConfiguration JsonSerializer chatMessageSerializer() { JsonSerializer serializer = new JsonSerializer<>(); + serializer.configure( + Map.of(JsonSerializer.ADD_TYPE_INFO_HEADERS, false), + false); return serializer; } @Bean Consumer chatMessageChannelConsumer( Properties defaultConsumerProperties, + ChatBackendProperties chatBackendProperties, StringDeserializer stringDeserializer, JsonDeserializer messageDeserializer) { - Properties properties = new Properties(defaultConsumerProperties); - properties.setProperty( + Map properties = new HashMap<>(); + defaultConsumerProperties.forEach((key, value) -> properties.put(key.toString(), value)); + properties.put( + ConsumerConfig.CLIENT_ID_CONFIG, + chatBackendProperties.getKafka().getClientIdPrefix() + "_MESSAGE_CHANNEL_CONSUMER"); + properties.put( ConsumerConfig.GROUP_ID_CONFIG, "chat_message_channel"); return new KafkaConsumer<>( @@ -191,6 +227,12 @@ public class KafkaServicesConfiguration JsonDeserializer chatMessageDeserializer() { JsonDeserializer deserializer = new JsonDeserializer<>(); + deserializer.configure( + Map.of( + JsonDeserializer.USE_TYPE_INFO_HEADERS, false, + JsonDeserializer.VALUE_DEFAULT_TYPE, MessageTo.class, + JsonDeserializer.TRUSTED_PACKAGES, getClass().getPackageName()), + false ); return deserializer; } @@ -198,9 +240,6 @@ public class KafkaServicesConfiguration Properties defaultProducerProperties(ChatBackendProperties chatBackendProperties) { Properties properties = new Properties(); - properties.setProperty( - ProducerConfig.CLIENT_ID_CONFIG, - chatBackendProperties.getKafka().getClientId()); properties.setProperty( ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, chatBackendProperties.getKafka().getBootstrapServers()); @@ -216,7 +255,7 @@ public class KafkaServicesConfiguration chatBackendProperties.getKafka().getBootstrapServers()); properties.setProperty( ConsumerConfig.CLIENT_ID_CONFIG, - chatBackendProperties.getKafka().getClientId()); + chatBackendProperties.getKafka().getClientIdPrefix()); properties.setProperty( ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false");