@Bean
Producer<Integer, ChatRoomTo> chatRoomChannelProducer(
Properties defaultProducerProperties,
+ ChatBackendProperties chatBackendProperties,
IntegerSerializer integerSerializer,
JsonSerializer<ChatRoomTo> chatRoomSerializer)
{
+ Map<String, Object> 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);
}
JsonSerializer<ChatRoomTo> chatRoomSerializer()
{
JsonSerializer<ChatRoomTo> serializer = new JsonSerializer<>();
+ serializer.configure(
+ Map.of(JsonSerializer.ADD_TYPE_INFO_HEADERS, false),
+ false);
return serializer;
}
@Bean
Consumer<Integer, ChatRoomTo> chatRoomChannelConsumer(
Properties defaultConsumerProperties,
+ ChatBackendProperties chatBackendProperties,
IntegerDeserializer integerDeserializer,
JsonDeserializer<ChatRoomTo> chatRoomDeserializer)
{
Map<String, Object> 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");
JsonDeserializer<ChatRoomTo> chatRoomDeserializer()
{
JsonDeserializer<ChatRoomTo> 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;
}
@Bean
Producer<String, MessageTo> chatMessageChannelProducer(
Properties defaultProducerProperties,
+ ChatBackendProperties chatBackendProperties,
StringSerializer stringSerializer,
JsonSerializer<MessageTo> messageSerializer)
{
+ Map<String, Object> 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);
}
JsonSerializer<MessageTo> chatMessageSerializer()
{
JsonSerializer<MessageTo> serializer = new JsonSerializer<>();
+ serializer.configure(
+ Map.of(JsonSerializer.ADD_TYPE_INFO_HEADERS, false),
+ false);
return serializer;
}
@Bean
Consumer<String, MessageTo> chatMessageChannelConsumer(
Properties defaultConsumerProperties,
+ ChatBackendProperties chatBackendProperties,
StringDeserializer stringDeserializer,
JsonDeserializer<MessageTo> messageDeserializer)
{
Map<String, Object> 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");
JsonDeserializer<MessageTo> chatMessageDeserializer()
{
JsonDeserializer<MessageTo> 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;
}
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());
chatBackendProperties.getKafka().getBootstrapServers());
properties.setProperty(
ConsumerConfig.CLIENT_ID_CONFIG,
- chatBackendProperties.getKafka().getClientId());
+ chatBackendProperties.getKafka().getClientIdPrefix());
properties.setProperty(
ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,
"false");