Repository: quarkusio/quarkus
Issue: Dev Mode fails with Quarkus 3.1 and Kafka client (no vert.x http extension on the classpath)

### Describe the bug

When starting devservices with `io.quarkus:quarkus-kafka-client:3.1.0.Final`, I get this error:

```
2023-06-02 22:48:36,647 INFO  [io.qua.kaf.cli.dep.DevServicesKafkaProcessor] (build-24) Dev Services for Kafka started. Other Quarkus applications in dev mode will find the broker automatically. For Quarkus applications in production mode, you can connect to this by starting your application with -Dkafka.bootstrap.servers=OUTSIDE://localhost:32769
2023-06-02 22:48:36,832 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application (with profile [dev]): java.lang.ClassNotFoundException: io.vertx.core.Handler
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:516)
	at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:466)
	at io.quarkus.deployment.steps.KafkaProcessor$registerKafkaUiExecHandler1228376192.deploy_0(Unknown Source)
	at io.quarkus.deployment.steps.KafkaProcessor$registerKafkaUiExecHandler1228376192.deploy(Unknown Source)
	at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
	at io.quarkus.runtime.Application.start(Application.java:101)
	at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
	at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
	at io.quarkus.runner.GeneratedMain.main(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:104)
	at java.base/java.lang.Thread.run(Thread.java:833)
```



### Expected behavior

_No response_

### Actual behavior

_No response_

### How to Reproduce?

To reproduce is simple. Create a Quarkus 3 project, add `io.quarkus:quarkus-kafka-client` extension.
Run the app in devMode.

### 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

_No response_

### 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

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 d2ced26b180..eef8ad985c9 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
@@ -561,14 +561,17 @@ public AdditionalBeanBuildItem kafkaClientBeans() {
     @BuildStep(onlyIf = IsDevelopment.class)
     @Record(ExecutionTime.RUNTIME_INIT)
     public void registerKafkaUiExecHandler(
+            Capabilities capabilities,
             BuildProducer<DevConsoleRouteBuildItem> routeProducer,
             KafkaUiRecorder recorder) {
-        routeProducer.produce(DevConsoleRouteBuildItem.builder()
-                .method("POST")
-                .handler(recorder.kafkaControlHandler())
-                .path(KAFKA_ADMIN_PATH)
-                .bodyHandlerRequired()
-                .build());
+        if (capabilities.isPresent(Capability.VERTX_HTTP)) {
+            routeProducer.produce(DevConsoleRouteBuildItem.builder()
+                    .method("POST")
+                    .handler(recorder.kafkaControlHandler())
+                    .path(KAFKA_ADMIN_PATH)
+                    .bodyHandlerRequired()
+                    .build());
+        }
     }
 
     @BuildStep(onlyIf = IsDevelopment.class)