Repository: quarkusio/quarkus
Issue: 4 warnings about unknown 'wildfly.sasl.relax-compliance' config when using infinispan-client + smallrye-reactive-messaging-kafka

### Describe the bug

4 warnings about unknown 'wildfly.sasl.relax-compliance' config when using `infinispan-client` + `smallrye-reactive-messaging-kafka`

I used vanilla application from code.quarkus, using Quarkus 2.6.0.Final

```
__  ____  __  _____   ___  __ ____  ______
 --/ __ \\/ / / / _ | / _ \\/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\\ \\
--\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/
2021-12-23 13:16:59,208 INFO  [io.sma.rea.mes.kafka] (Quarkus Main Thread) SRMSG18214: Key deserializer omitted, using String as default
2021-12-23 13:16:59,294 WARN  [org.apa.kaf.cli.con.ConsumerConfig] (Quarkus Main Thread) The configuration 'wildfly.sasl.relax-compliance' was supplied but isn't a known config.
2021-12-23 13:16:59,324 INFO  [io.sma.rea.mes.kafka] (Quarkus Main Thread) SRMSG18229: Configured topics for channel 'uppercase-in': [uppercase-word]
2021-12-23 13:16:59,329 INFO  [io.sma.rea.mes.kafka] (Quarkus Main Thread) SRMSG18214: Key deserializer omitted, using String as default
2021-12-23 13:16:59,335 WARN  [org.apa.kaf.cli.con.ConsumerConfig] (Quarkus Main Thread) The configuration 'wildfly.sasl.relax-compliance' was supplied but isn't a known config.
2021-12-23 13:16:59,356 WARN  [org.apa.kaf.cli.pro.ProducerConfig] (Quarkus Main Thread) The configuration 'wildfly.sasl.relax-compliance' was supplied but isn't a known config.
2021-12-23 13:16:59,363 INFO  [io.sma.rea.mes.kafka] (Quarkus Main Thread) SRMSG18258: Kafka producer kafka-producer-source-out, connected to Kafka brokers 'OUTSIDE://localhost:55023', is configured to write records to 'word'
2021-12-23 13:16:59,377 WARN  [org.apa.kaf.cli.pro.ProducerConfig] (Quarkus Main Thread) The configuration 'wildfly.sasl.relax-compliance' was supplied but isn't a known config.
2021-12-23 13:16:59,379 INFO  [io.sma.rea.mes.kafka] (Quarkus Main Thread) SRMSG18258: Kafka producer kafka-producer-uppercase-out, connected to Kafka brokers 'OUTSIDE://localhost:55023', is configured to write records to 'uppercase-word'
2021-12-23 13:16:59,407 INFO  [io.sma.rea.mes.kafka] (smallrye-kafka-consumer-thread-0) SRMSG18257: Kafka consumer kafka-consumer-uppercase-in, connected to Kafka brokers 'OUTSIDE://localhost:55023', belongs to the 'code-with-quarkus' consumer group and is configured to poll records from [uppercase-word]
2021-12-23 13:16:59,407 INFO  [io.sma.rea.mes.kafka] (smallrye-kafka-consumer-thread-1) SRMSG18257: Kafka consumer kafka-consumer-source-in, connected to Kafka brokers 'OUTSIDE://localhost:55023', belongs to the 'code-with-quarkus' consumer group and is configured to poll records from [word]
2021-12-23 13:16:59,436 INFO  [io.quarkus] (Quarkus Main Thread) code-with-quarkus 1.0.0-SNAPSHOT on JVM (powered by Quarkus 2.6.0.Final) started in 14.033s.
2021-12-23 13:16:59,437 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2021-12-23 13:16:59,437 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, infinispan-client, kafka-client, smallrye-context-propagation, smallrye-reactive-messaging, smallrye-reactive-messaging-kafka, vertx]
```

### Expected behavior

No warnings about unknown config property are expected

### Actual behavior

4 x `2021-12-23 13:16:59,356 WARN  [org.apa.kaf.cli.pro.ProducerConfig] (Quarkus Main Thread) The configuration 'wildfly.sasl.relax-compliance' was supplied but isn't a known config.`

### How to Reproduce?

 - Go to https://code.quarkus.io
 - Select quarkus-infinispan-client
 - Select quarkus-smallrye-reactive-messaging-kafka
 - Download and uzip the app
 - Run `mvn quarkus:dev`
 - Check the log

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.6.0.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
core/deployment/src/main/java/io/quarkus/deployment/logging/LogCleanupFilterBuildItem.java

diff --git a/core/deployment/src/main/java/io/quarkus/deployment/logging/LogCleanupFilterBuildItem.java b/core/deployment/src/main/java/io/quarkus/deployment/logging/LogCleanupFilterBuildItem.java
index e856ae2b974..7c3b23c5f12 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/logging/LogCleanupFilterBuildItem.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/logging/LogCleanupFilterBuildItem.java
@@ -1,6 +1,7 @@
 package io.quarkus.deployment.logging;
 
 import java.util.Arrays;
+import java.util.List;
 import java.util.logging.Level;
 
 import io.quarkus.builder.item.MultiBuildItem;
@@ -17,17 +18,25 @@ public final class LogCleanupFilterBuildItem extends MultiBuildItem {
     private LogCleanupFilterElement filterElement;
 
     public LogCleanupFilterBuildItem(String loggerName, String... messageStarts) {
-        if (messageStarts.length == 0) {
-            throw new IllegalArgumentException("messageStarts cannot be null");
-        }
-        this.filterElement = new LogCleanupFilterElement(loggerName, Arrays.asList(messageStarts));
+        this(loggerName, Arrays.asList(messageStarts));
     }
 
     public LogCleanupFilterBuildItem(String loggerName, Level targetLevel, String... messageStarts) {
-        if (messageStarts.length == 0) {
-            throw new IllegalArgumentException("messageStarts cannot be null");
+        this(loggerName, targetLevel, Arrays.asList(messageStarts));
+    }
+
+    public LogCleanupFilterBuildItem(String loggerName, List<String> messageStarts) {
+        if (messageStarts.isEmpty()) {
+            throw new IllegalArgumentException("messageStarts cannot be empty");
+        }
+        this.filterElement = new LogCleanupFilterElement(loggerName, messageStarts);
+    }
+
+    public LogCleanupFilterBuildItem(String loggerName, Level targetLevel, List<String> messageStarts) {
+        if (messageStarts.isEmpty()) {
+            throw new IllegalArgumentException("messageStarts cannot be empty");
         }
-        this.filterElement = new LogCleanupFilterElement(loggerName, targetLevel, Arrays.asList(messageStarts));
+        this.filterElement = new LogCleanupFilterElement(loggerName, targetLevel, messageStarts);
     }
 
     public LogCleanupFilterElement getFilterElement() {
diff --git a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
index 79027fdba7f..76ccae4a3d1 100644
--- a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
+++ b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
@@ -1,8 +1,10 @@
 package io.quarkus.kafka.client.deployment;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.function.Consumer;
 import java.util.logging.Level;
@@ -79,6 +81,7 @@
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
+import io.quarkus.deployment.logging.LogCleanupFilterBuildItem;
 import io.quarkus.deployment.pkg.NativeConfig;
 import io.quarkus.kafka.client.runtime.KafkaBindingConverter;
 import io.quarkus.kafka.client.runtime.KafkaRecorder;
@@ -137,7 +140,21 @@ void logging(BuildProducer<LogCategoryBuildItem> log) {
         log.produce(new LogCategoryBuildItem("org.apache.kafka.clients", Level.WARNING));
         log.produce(new LogCategoryBuildItem("org.apache.kafka.common.utils", Level.WARNING));
         log.produce(new LogCategoryBuildItem("org.apache.kafka.common.metrics", Level.WARNING));
+    }
+
+    @BuildStep
+    void silenceUnwantedConfigLogs(BuildProducer<LogCleanupFilterBuildItem> logCleanupFilters) {
+        String[] ignoredConfigProperties = { "wildfly.sasl.relax-compliance", "ssl.endpoint.identification.algorithm" };
+
+        List<String> ignoredMessages = new ArrayList<>();
+        for (String ignoredConfigProperty : ignoredConfigProperties) {
+            ignoredMessages.add("The configuration '" + ignoredConfigProperty + "' was supplied but isn't a known config.");
+        }
 
+        logCleanupFilters.produce(new LogCleanupFilterBuildItem("org.apache.kafka.clients.consumer.ConsumerConfig",
+                ignoredMessages));
+        logCleanupFilters.produce(new LogCleanupFilterBuildItem("org.apache.kafka.clients.producer.ProducerConfig",
+                ignoredMessages));
     }
 
     @BuildStep