You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2021/03/26 07:07:21 UTC

[camel-quarkus] 02/08: Merge camel-quarkus-main into camel-quarkus-core #2358

This is an automated email from the ASF dual-hosted git repository.

ppalaga pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit f77c3d2efe0ac25a9097043e12fab34ae16f8d7f
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Mar 23 17:03:44 2021 +0100

    Merge camel-quarkus-main into camel-quarkus-core #2358
---
 .../ROOT/pages/reference/extensions/core.adoc      | 18 ++++++++
 .../ROOT/pages/reference/extensions/main.adoc      | 24 ----------
 .../core/deployment/CamelContextProcessor.java     |  5 +--
 .../core/deployment/main}/CamelMainHelper.java     |  2 +-
 .../main}/CamelMainHotDeploymentProcessor.java     |  5 ++-
 .../main}/CamelMainNativeImageProcessor.java       |  7 +--
 .../core/deployment/main}/CamelMainProcessor.java  | 51 ++++++++++++++--------
 .../deployment/main}/spi/CamelMainBuildItem.java   |  2 +-
 .../spi/CamelMainEnabled.java}                     | 24 ++++++----
 .../main}/spi/CamelMainListenerBuildItem.java      |  2 +-
 .../main}/spi/CamelRoutesCollectorBuildItem.java   |  2 +-
 .../main/CamelAutowiredDisabledTest.java}          | 11 +++--
 .../main/CamelComponentConfigurationTest.java}     | 29 ++++++------
 .../main}/CamelMainAutoConfigurationTest.java      |  2 +-
 .../core/deployment/main}/CamelMainInjectTest.java |  2 +-
 .../CamelMainLambdaRouteBuilderDiscoveryTest.java  |  2 +-
 .../deployment/main}/CamelMainObserversTest.java   |  2 +-
 .../main}/CamelMainRouteTemplateTest.java          |  2 +-
 .../main}/CamelMainRoutesDiscoveryTest.java        |  2 +-
 .../main}/CamelMainRoutesFilterTest.java           |  2 +-
 .../main}/CamelMainUnknownArgumentFailTest.java    |  2 +-
 .../main}/CamelMainUnknownArgumentIgnoreTest.java  |  2 +-
 .../main}/CamelMainUnknownArgumentWarnTest.java    |  2 +-
 .../core/deployment/main/DisabledMainTest.java}    | 30 +++++++------
 extensions-core/core/runtime/pom.xml               |  4 ++
 .../org/apache/camel/quarkus/main/CamelMain.java   |  0
 .../camel/quarkus/main/CamelMainApplication.java   |  0
 .../apache/camel/quarkus/main/CamelMainConfig.java |  8 ++++
 .../camel/quarkus/main/CamelMainEventBridge.java   |  0
 .../camel/quarkus/main/CamelMainProducers.java     |  0
 .../camel/quarkus/main/CamelMainRecorder.java      |  0
 .../quarkus/main/CamelMainRoutesCollector.java     |  0
 .../camel/quarkus/main/CamelMainRuntime.java       |  0
 .../camel/quarkus/main/events/AfterConfigure.java  |  0
 .../camel/quarkus/main/events/AfterStart.java      |  0
 .../camel/quarkus/main/events/AfterStop.java       |  0
 .../camel/quarkus/main/events/BeforeConfigure.java |  0
 .../quarkus/main/events/BeforeInitialize.java      |  0
 .../camel/quarkus/main/events/BeforeStart.java     |  0
 .../camel/quarkus/main/events/BeforeStop.java      |  0
 .../camel/quarkus/main/events/MainEvent.java       |  0
 extensions-core/main/deployment/pom.xml            | 38 ----------------
 .../quarkus/main/deployment/CamelMainFeature.java  | 11 +++--
 extensions-core/main/runtime/pom.xml               | 15 +------
 .../main/resources/META-INF/quarkus-extension.yaml |  1 +
 .../component/jfr/deployment/JfrProcessor.java     |  4 +-
 .../deployment/CustomMainListenerProcessor.java    |  2 +-
 .../deployment/CustomRoutesCollectorProcessor.java |  2 +-
 .../camel/quarkus/component/netty/NettyBeans.java  | 29 +++++++-----
 .../camel/quarkus/component/netty/NettyRoutes.java | 12 -----
 50 files changed, 171 insertions(+), 187 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/core.adoc b/docs/modules/ROOT/pages/reference/extensions/core.adoc
index ae0138b..2879a4a 100644
--- a/docs/modules/ROOT/pages/reference/extensions/core.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/core.adoc
@@ -165,6 +165,24 @@ A comma separated list of Ant-path style patterns to match class names that shou
 What to do if it is not possible to extract CSimple expressions from a route definition at build time.
 | `org.apache.camel.quarkus.core.CamelConfig.FailureRemedy`
 | `warn`
+
+|icon:lock[title=Fixed at build time] [[quarkus.camel.main.enabled]]`link:#quarkus.camel.main.enabled[quarkus.camel.main.enabled]`
+
+If `true` all `camel-main` features are enabled; otherwise no `camel-main` features are enabled. See described the link:https://camel.apache.org/camel-quarkus/latest/user-guide/bootstrap.html#_camel_main[Bootstrap] section of Camel Quarkus documentation for more details.
+| `boolean`
+| `true`
+
+|icon:lock[title=Fixed at build time] [[quarkus.camel.main.shutdown.timeout]]`link:#quarkus.camel.main.shutdown.timeout[quarkus.camel.main.shutdown.timeout]`
+
+A timeout (with millisecond precision) to wait for `CamelMain++#++stop()` to finish
+| `java.time.Duration`
+| `PT3S`
+
+|icon:lock[title=Fixed at build time] [[quarkus.camel.main.arguments.on-unknown]]`link:#quarkus.camel.main.arguments.on-unknown[quarkus.camel.main.arguments.on-unknown]`
+
+The action to take when `CamelMain` encounters an unknown argument. fail - Prints the `CamelMain` usage statement and throws a `RuntimeException` ignore - Suppresses any warnings and the application startup proceeds as normal warn - Prints the `CamelMain` usage statement but allows the application startup to proceed as normal
+| `org.apache.camel.quarkus.core.CamelConfig.FailureRemedy`
+| `warn`
 |===
 
 [.configuration-legend]
diff --git a/docs/modules/ROOT/pages/reference/extensions/main.adoc b/docs/modules/ROOT/pages/reference/extensions/main.adoc
index f3c6a80..4d37c2d 100644
--- a/docs/modules/ROOT/pages/reference/extensions/main.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/main.adoc
@@ -26,27 +26,3 @@ Bootstrap Camel using Camel Main which brings advanced auto-configuration capabi
 ----
 
 Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
-
-== Additional Camel Quarkus configuration
-
-[width="100%",cols="80,5,15",options="header"]
-|===
-| Configuration property | Type | Default
-
-
-|icon:lock[title=Fixed at build time] [[quarkus.camel.main.shutdown.timeout]]`link:#quarkus.camel.main.shutdown.timeout[quarkus.camel.main.shutdown.timeout]`
-
-A timeout (with millisecond precision) to wait for `CamelMain++#++stop()` to finish
-| `java.time.Duration`
-| `PT3S`
-
-|icon:lock[title=Fixed at build time] [[quarkus.camel.main.arguments.on-unknown]]`link:#quarkus.camel.main.arguments.on-unknown[quarkus.camel.main.arguments.on-unknown]`
-
-The action to take when `CamelMain` encounters an unknown argument. fail - Prints the `CamelMain` usage statement and throws a `RuntimeException` ignore - Suppresses any warnings and the application startup proceeds as normal warn - Prints the `CamelMain` usage statement but allows the application startup to proceed as normal
-| `org.apache.camel.quarkus.core.CamelConfig.FailureRemedy`
-| `warn`
-|===
-
-[.configuration-legend]
-icon:lock[title=Fixed at build time] Configuration property fixed at build time. All other configuration properties are overridable at runtime.
-
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
index f19632a..0d20e85 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
@@ -23,13 +23,13 @@ import io.quarkus.arc.deployment.SyntheticBeansRuntimeInitBuildItem;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.annotations.Consume;
 import io.quarkus.deployment.annotations.ExecutionTime;
-import io.quarkus.deployment.annotations.Overridable;
 import io.quarkus.deployment.annotations.Record;
 import io.quarkus.runtime.RuntimeValue;
 import org.apache.camel.CamelContext;
 import org.apache.camel.quarkus.core.CamelConfig;
 import org.apache.camel.quarkus.core.CamelContextRecorder;
 import org.apache.camel.quarkus.core.CamelRuntime;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainEnabled;
 import org.apache.camel.quarkus.core.deployment.spi.CamelContextBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelContextCustomizerBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelFactoryFinderResolverBuildItem;
@@ -121,8 +121,7 @@ public class CamelContextProcessor {
      * @param  config               a reference to the Camel Quarkus configuration
      * @return                      a build item holding a {@link CamelRuntime} instance.
      */
-    @Overridable
-    @BuildStep
+    @BuildStep(onlyIfNot = CamelMainEnabled.class)
     @Record(value = ExecutionTime.RUNTIME_INIT, optional = true)
     /* @Consume(SyntheticBeansRuntimeInitBuildItem.class) makes sure that camel-main starts after the ArC container is
      * fully initialized. This is required as under the hoods the camel registry may look-up beans form the
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainHelper.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainHelper.java
similarity index 97%
rename from extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainHelper.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainHelper.java
index 6f60192..3f740f8 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainHelper.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainHelper.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.util.stream.Stream;
 
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainHotDeploymentProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainHotDeploymentProcessor.java
similarity index 92%
rename from extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainHotDeploymentProcessor.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainHotDeploymentProcessor.java
index 8325147..574aeef 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainHotDeploymentProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainHotDeploymentProcessor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -24,6 +24,7 @@ import java.util.stream.Collectors;
 
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainEnabled;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -31,7 +32,7 @@ class CamelMainHotDeploymentProcessor {
     private static final Logger LOGGER = LoggerFactory.getLogger(CamelMainHotDeploymentProcessor.class);
     private static final String FILE_PREFIX = "file:";
 
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     List<HotDeploymentWatchedFileBuildItem> locations() {
         List<HotDeploymentWatchedFileBuildItem> items = CamelMainHelper.routesIncludePatter()
                 .filter(location -> location.startsWith(FILE_PREFIX))
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainNativeImageProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainNativeImageProcessor.java
similarity index 93%
rename from extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainNativeImageProcessor.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainNativeImageProcessor.java
index b2f19e3..4d75ffa 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainNativeImageProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainNativeImageProcessor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -24,6 +24,7 @@ import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainEnabled;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.util.AntPathMatcher;
 import org.jboss.logging.Logger;
@@ -31,7 +32,7 @@ import org.jboss.logging.Logger;
 public class CamelMainNativeImageProcessor {
     private static final Logger LOG = Logger.getLogger(CamelMainNativeImageProcessor.class);
 
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     ReflectiveClassBuildItem reflectiveCLasses() {
         // TODO: The classes below are needed to fix https://github.com/apache/camel-quarkus/issues/1005
         //       but we need to investigate why it does not fail with Java 1.8
@@ -45,7 +46,7 @@ public class CamelMainNativeImageProcessor {
                 org.apache.camel.quarkus.main.CamelMainApplication.class);
     }
 
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     private void camelNativeImageResources(
             Capabilities capabilities,
             BuildProducer<NativeImageResourceBuildItem> nativeResource) {
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainProcessor.java
similarity index 84%
rename from extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainProcessor.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainProcessor.java
index 7106972..928b87a 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainProcessor.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -29,6 +29,7 @@ import io.quarkus.deployment.annotations.ExecutionTime;
 import io.quarkus.deployment.annotations.Overridable;
 import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.AdditionalIndexedClassesBuildItem;
+import io.quarkus.deployment.builditem.CapabilityBuildItem;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.runtime.RuntimeValue;
 import io.quarkus.runtime.annotations.QuarkusMain;
@@ -36,11 +37,17 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.quarkus.core.CamelConfig;
 import org.apache.camel.quarkus.core.CamelRecorder;
 import org.apache.camel.quarkus.core.CamelRuntime;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainBuildItem;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainEnabled;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainListenerBuildItem;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelRoutesCollectorBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelContextBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRoutesBuilderClassBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRoutesLoaderBuildItems;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeTaskBuildItem;
+import org.apache.camel.quarkus.core.deployment.spi.CamelServiceDestination;
+import org.apache.camel.quarkus.core.deployment.spi.CamelServicePatternBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.ContainerBeansBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.RuntimeCamelContextCustomizerBuildItem;
 import org.apache.camel.quarkus.main.CamelMain;
@@ -48,24 +55,23 @@ import org.apache.camel.quarkus.main.CamelMainApplication;
 import org.apache.camel.quarkus.main.CamelMainConfig;
 import org.apache.camel.quarkus.main.CamelMainProducers;
 import org.apache.camel.quarkus.main.CamelMainRecorder;
-import org.apache.camel.quarkus.main.deployment.spi.CamelMainBuildItem;
-import org.apache.camel.quarkus.main.deployment.spi.CamelMainListenerBuildItem;
-import org.apache.camel.quarkus.main.deployment.spi.CamelRoutesCollectorBuildItem;
+import org.apache.camel.quarkus.support.common.CamelCapabilities;
 import org.jboss.jandex.DotName;
 import org.jboss.jandex.IndexView;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class CamelMainProcessor {
-    private static Logger LOGGER = LoggerFactory.getLogger(CamelMainProcessor.class);
 
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     void unremovableBeans(BuildProducer<AdditionalBeanBuildItem> beanProducer) {
         beanProducer.produce(AdditionalBeanBuildItem.unremovableOf(CamelMainProducers.class));
     }
 
-    @Overridable
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
+    CapabilityBuildItem capability() {
+        return new CapabilityBuildItem(CamelCapabilities.MAIN);
+    }
+
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     @Record(value = ExecutionTime.STATIC_INIT, optional = true)
     public CamelRoutesLoaderBuildItems.Registry routesLoader(CamelConfig config, CamelRecorder recorder) {
         return config.routesDiscovery.enabled
@@ -74,7 +80,7 @@ public class CamelMainProcessor {
     }
 
     @Overridable
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     @Record(value = ExecutionTime.STATIC_INIT, optional = true)
     public CamelRoutesCollectorBuildItem routesCollector(
             CamelMainRecorder recorder,
@@ -97,7 +103,7 @@ public class CamelMainProcessor {
      * @return                      a build item holding a {@link CamelMain} instance.
      */
     @Record(ExecutionTime.STATIC_INIT)
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     CamelMainBuildItem main(
             BeanContainerBuildItem beanContainer,
             ContainerBeansBuildItem containerBeans,
@@ -142,7 +148,8 @@ public class CamelMainProcessor {
      * <li>Circuit Breaker
      * <li>Health
      * </ul>
-     * <li>take control of the application life-cycle and initiates Quarkus shutdown according to some conditions as example
+     * <li>take control of the application life-cycle and initiates Quarkus shutdown according to some conditions as
+     * example
      * after having processed a certain number of messages..
      * </ul>
      *
@@ -156,11 +163,13 @@ public class CamelMainProcessor {
      * @param  camelMainConfig a {@link CamelMainConfig}
      * @return                 a build item holding a {@link CamelRuntime} instance.
      */
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     @Record(value = ExecutionTime.RUNTIME_INIT, optional = true)
-    /* @Consume(SyntheticBeansRuntimeInitBuildItem.class) makes sure that camel-main starts after the ArC container is
+    /*
+     * @Consume(SyntheticBeansRuntimeInitBuildItem.class) makes sure that camel-main starts after the ArC container is
      * fully initialized. This is required as under the hoods the camel registry may look-up beans form the
-     * container thus we need it to be fully initialized to avoid unexpected behaviors. */
+     * container thus we need it to be fully initialized to avoid unexpected behaviors.
+     */
     @Consume(SyntheticBeansRuntimeInitBuildItem.class)
     CamelRuntimeBuildItem runtime(
             CombinedIndexBuildItem index,
@@ -189,9 +198,17 @@ public class CamelMainProcessor {
                 index.getIndex().getAnnotations(DotName.createSimple(QuarkusMain.class.getName())).isEmpty());
     }
 
-    @BuildStep
+    @BuildStep(onlyIf = CamelMainEnabled.class)
     AdditionalIndexedClassesBuildItem indexCamelMainApplication() {
         // Required for launching CamelMain based applications from the IDE
         return new AdditionalIndexedClassesBuildItem(CamelMainApplication.class.getName());
     }
+
+    @BuildStep(onlyIfNot = CamelMainEnabled.class)
+    void coreServicePatterns(BuildProducer<CamelServicePatternBuildItem> services) {
+        services.produce(new CamelServicePatternBuildItem(
+                CamelServiceDestination.DISCOVERY,
+                false,
+                "META-INF/services/org/apache/camel/configurer/org.apache.camel.main.*"));
+    }
 }
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelMainBuildItem.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainBuildItem.java
similarity index 95%
rename from extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelMainBuildItem.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainBuildItem.java
index 99f7da8..501705c 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelMainBuildItem.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainBuildItem.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment.spi;
+package org.apache.camel.quarkus.core.deployment.main.spi;
 
 import io.quarkus.builder.item.SimpleBuildItem;
 import io.quarkus.runtime.RuntimeValue;
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelMainPresent.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainEnabled.java
similarity index 64%
rename from extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelMainPresent.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainEnabled.java
index 2a222af..8612d07 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelMainPresent.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainEnabled.java
@@ -14,19 +14,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.core.deployment;
+package org.apache.camel.quarkus.core.deployment.main.spi;
 
 import java.util.function.BooleanSupplier;
 
-public class CamelMainPresent implements BooleanSupplier {
+import io.quarkus.runtime.RuntimeValue;
+import org.apache.camel.quarkus.main.CamelMain;
+import org.apache.camel.quarkus.main.CamelMainConfig;
+
+/**
+ * Holds the {@link CamelMain} {@link RuntimeValue}.
+ */
+public class CamelMainEnabled implements BooleanSupplier {
+
+    private final CamelMainConfig mainConfig;
+
+    CamelMainEnabled(CamelMainConfig mainConfig) {
+        this.mainConfig = mainConfig;
+    }
 
     @Override
     public boolean getAsBoolean() {
-        try {
-            Class.forName("org.apache.camel.quarkus.main.CamelMain");
-            return true;
-        } catch (ClassNotFoundException e) {
-            return false;
-        }
+        return mainConfig.enabled;
     }
 }
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelMainListenerBuildItem.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainListenerBuildItem.java
similarity index 95%
rename from extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelMainListenerBuildItem.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainListenerBuildItem.java
index bfd4b71..1355dd1 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelMainListenerBuildItem.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelMainListenerBuildItem.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment.spi;
+package org.apache.camel.quarkus.core.deployment.main.spi;
 
 import io.quarkus.builder.item.MultiBuildItem;
 import io.quarkus.runtime.RuntimeValue;
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelRoutesCollectorBuildItem.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelRoutesCollectorBuildItem.java
similarity index 95%
rename from extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelRoutesCollectorBuildItem.java
rename to extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelRoutesCollectorBuildItem.java
index 5454cce..c7f68e4 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/spi/CamelRoutesCollectorBuildItem.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/spi/CamelRoutesCollectorBuildItem.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment.spi;
+package org.apache.camel.quarkus.core.deployment.main.spi;
 
 import io.quarkus.builder.item.SimpleBuildItem;
 import io.quarkus.runtime.RuntimeValue;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainAutoConfigurationTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelAutowiredDisabledTest.java
similarity index 91%
copy from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainAutoConfigurationTest.java
copy to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelAutowiredDisabledTest.java
index 9d45d7a..f6430b6 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainAutoConfigurationTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelAutowiredDisabledTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
@@ -40,7 +40,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class CamelMainAutoConfigurationTest {
+public class CamelAutowiredDisabledTest {
     @RegisterExtension
     static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
             .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
@@ -55,6 +55,7 @@ public class CamelMainAutoConfigurationTest {
         Properties props = new Properties();
         props.setProperty("quarkus.banner.enabled", "false");
         props.setProperty("quarkus.arc.remove-unused-beans", "false");
+        props.setProperty("camel.context.autowiredenabled", "false");
 
         try {
             props.store(writer, "");
@@ -74,11 +75,9 @@ public class CamelMainAutoConfigurationTest {
             assertThat(component.getExchangeFormatter()).isInstanceOf(MyExchangeFormatter.class);
         });
 
-        // ensure that the exchange formatter is taken from the container as
-        // LogComponent has no default instance thus it should be auto-wired
-        // by camel-main
+        // ensure that camel.context.autowiredenabled = false disables autowiring of the exchange formatter
         assertThat(main.getCamelContext().getComponent("log", LogComponent.class)).satisfies(component -> {
-            assertThat(component.getExchangeFormatter()).isInstanceOf(MyOtherExchangeFormatter.class);
+            assertThat(component.getExchangeFormatter()).isNull();
         });
     }
 
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelComponentConfigurationTest.java
similarity index 73%
copy from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java
copy to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelComponentConfigurationTest.java
index e58cbad..1b6447e 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelComponentConfigurationTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
@@ -23,8 +23,10 @@ import java.util.Properties;
 
 import javax.inject.Inject;
 
+import io.quarkus.arc.Arc;
 import io.quarkus.test.QuarkusUnitTest;
-import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.direct.DirectComponent;
 import org.apache.camel.quarkus.main.CamelMain;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.Asset;
@@ -35,21 +37,24 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class CamelMainRoutesDiscoveryTest {
+public class CamelComponentConfigurationTest {
     @RegisterExtension
     static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
             .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
                     .addAsResource(applicationProperties(), "application.properties"));
 
+    private static final int TIMEOUT = 1234;
+
     @Inject
-    CamelMain main;
+    CamelContext camelContext;
 
     public static Asset applicationProperties() {
         Writer writer = new StringWriter();
 
         Properties props = new Properties();
         props.setProperty("quarkus.banner.enabled", "false");
-        props.setProperty("quarkus.camel.routes-discovery.enabled", "false");
+        props.setProperty("quarkus.arc.remove-unused-beans", "false");
+        props.setProperty("camel.component.direct.timeout", String.valueOf(TIMEOUT));
 
         try {
             props.store(writer, "");
@@ -61,15 +66,13 @@ public class CamelMainRoutesDiscoveryTest {
     }
 
     @Test
-    public void testRoutesDiscovery() {
-        assertThat(main.getCamelContext().getRoutes()).isEmpty();
-        assertThat(main.configure().getRoutesBuilders()).isEmpty();
+    public void testComponentAutoConfiguration() {
+        assertThat(camelContext.getComponent("direct", DirectComponent.class).getTimeout()).isEqualTo(TIMEOUT);
     }
 
-    public static class MyRoute extends RouteBuilder {
-        @Override
-        public void configure() throws Exception {
-            from("direct:in").routeId("my-route").to("log:out");
-        }
+    @Test
+    public void mainAvailable() {
+        assertThat(Arc.container().instance(CamelMain.class).isAvailable()).isTrue();
     }
+
 }
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainAutoConfigurationTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainAutoConfigurationTest.java
similarity index 98%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainAutoConfigurationTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainAutoConfigurationTest.java
index 9d45d7a..8d18cdf 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainAutoConfigurationTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainAutoConfigurationTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainInjectTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainInjectTest.java
similarity index 98%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainInjectTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainInjectTest.java
index 14de57f..1967ad7 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainInjectTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainInjectTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainLambdaRouteBuilderDiscoveryTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainLambdaRouteBuilderDiscoveryTest.java
similarity index 97%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainLambdaRouteBuilderDiscoveryTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainLambdaRouteBuilderDiscoveryTest.java
index f2e951d..f45c428 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainLambdaRouteBuilderDiscoveryTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainLambdaRouteBuilderDiscoveryTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainObserversTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainObserversTest.java
similarity index 98%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainObserversTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainObserversTest.java
index 214b286..dcc7e8e 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainObserversTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainObserversTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteTemplateTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRouteTemplateTest.java
similarity index 98%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteTemplateTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRouteTemplateTest.java
index e91c15d..7277807 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteTemplateTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRouteTemplateTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesDiscoveryTest.java
similarity index 97%
copy from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java
copy to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesDiscoveryTest.java
index e58cbad..0ca47c3 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesDiscoveryTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesFilterTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesFilterTest.java
similarity index 98%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesFilterTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesFilterTest.java
index fa0ea0f..8568a1a 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesFilterTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesFilterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentFailTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentFailTest.java
similarity index 97%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentFailTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentFailTest.java
index 13ba8da..fdc8ff1 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentFailTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentFailTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentIgnoreTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentIgnoreTest.java
similarity index 98%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentIgnoreTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentIgnoreTest.java
index 7ffa54b..c10a0a6 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentIgnoreTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentIgnoreTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentWarnTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentWarnTest.java
similarity index 98%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentWarnTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentWarnTest.java
index a112944..db70234 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainUnknownArgumentWarnTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainUnknownArgumentWarnTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/DisabledMainTest.java
similarity index 71%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java
rename to extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/DisabledMainTest.java
index e58cbad..3043a31 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRoutesDiscoveryTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/DisabledMainTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main.deployment;
+package org.apache.camel.quarkus.core.deployment.main;
 
 import java.io.IOException;
 import java.io.StringWriter;
@@ -23,8 +23,10 @@ import java.util.Properties;
 
 import javax.inject.Inject;
 
+import io.quarkus.arc.Arc;
 import io.quarkus.test.QuarkusUnitTest;
-import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.direct.DirectComponent;
 import org.apache.camel.quarkus.main.CamelMain;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.Asset;
@@ -35,21 +37,25 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class CamelMainRoutesDiscoveryTest {
+public class DisabledMainTest {
     @RegisterExtension
     static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
             .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
                     .addAsResource(applicationProperties(), "application.properties"));
 
+    private static final int TIMEOUT = 1234;
+
     @Inject
-    CamelMain main;
+    CamelContext camelContext;
 
     public static Asset applicationProperties() {
         Writer writer = new StringWriter();
 
         Properties props = new Properties();
         props.setProperty("quarkus.banner.enabled", "false");
-        props.setProperty("quarkus.camel.routes-discovery.enabled", "false");
+        props.setProperty("quarkus.arc.remove-unused-beans", "false");
+        props.setProperty("camel.component.direct.timeout", String.valueOf(TIMEOUT));
+        props.setProperty("quarkus.camel.main.enabled", "false");
 
         try {
             props.store(writer, "");
@@ -61,15 +67,13 @@ public class CamelMainRoutesDiscoveryTest {
     }
 
     @Test
-    public void testRoutesDiscovery() {
-        assertThat(main.getCamelContext().getRoutes()).isEmpty();
-        assertThat(main.configure().getRoutesBuilders()).isEmpty();
+    public void componentAutoConfigurationNotWorking() {
+        assertThat(camelContext.getComponent("direct", DirectComponent.class).getTimeout()).isNotEqualTo(TIMEOUT);
     }
 
-    public static class MyRoute extends RouteBuilder {
-        @Override
-        public void configure() throws Exception {
-            from("direct:in").routeId("my-route").to("log:out");
-        }
+    @Test
+    public void mainUnavailable() {
+        assertThat(Arc.container().instance(CamelMain.class).isAvailable()).isFalse();
     }
+
 }
diff --git a/extensions-core/core/runtime/pom.xml b/extensions-core/core/runtime/pom.xml
index ade5d9a..1596936 100644
--- a/extensions-core/core/runtime/pom.xml
+++ b/extensions-core/core/runtime/pom.xml
@@ -94,6 +94,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
+            <artifactId>camel-main</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
             <artifactId>camel-microprofile-config</artifactId>
         </dependency>
 
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainApplication.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainApplication.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainApplication.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainApplication.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
similarity index 85%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
index e249b93..140f125 100644
--- a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
@@ -26,6 +26,14 @@ import org.apache.camel.quarkus.core.CamelConfig.FailureRemedy;
 
 @ConfigRoot(name = "camel.main", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
 public class CamelMainConfig {
+    /**
+     * If {@code true} all {@code camel-main} features are enabled; otherwise no {@code camel-main} features are
+     * enabled. See described the
+     * <a href="https://camel.apache.org/camel-quarkus/latest/user-guide/bootstrap.html#_camel_main">Bootstrap</a>
+     * section of Camel Quarkus documentation for more details.
+     */
+    @ConfigItem(defaultValue = "true")
+    public boolean enabled;
 
     /**
      * Build time configuration options for {@link CamelMain} shutdown.
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainEventBridge.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainEventBridge.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainEventBridge.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainEventBridge.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainProducers.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainProducers.java
similarity index 100%
copy from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainProducers.java
copy to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainProducers.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRuntime.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRuntime.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRuntime.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRuntime.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterConfigure.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterConfigure.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterConfigure.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterConfigure.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStart.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStart.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStart.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStart.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStop.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStop.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStop.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/AfterStop.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeConfigure.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeConfigure.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeConfigure.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeConfigure.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeInitialize.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeInitialize.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeInitialize.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeInitialize.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStart.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStart.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStart.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStart.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStop.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStop.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStop.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/BeforeStop.java
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/MainEvent.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/MainEvent.java
similarity index 100%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/events/MainEvent.java
rename to extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/events/MainEvent.java
diff --git a/extensions-core/main/deployment/pom.xml b/extensions-core/main/deployment/pom.xml
index 4ada70e..e261a75 100644
--- a/extensions-core/main/deployment/pom.xml
+++ b/extensions-core/main/deployment/pom.xml
@@ -28,17 +28,6 @@
     <name>Camel Quarkus :: Main :: Deployment</name>
 
     <dependencies>
-        <!-- quarkus -->
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-core-deployment</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-arc-deployment</artifactId>
-        </dependency>
-
-        <!-- camel -->
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-main</artifactId>
@@ -47,33 +36,6 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core-deployment</artifactId>
         </dependency>
-
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-direct</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-log</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-junit5-internal</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainFeature.java b/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainFeature.java
index 24565c4..3f44c0e 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainFeature.java
+++ b/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainFeature.java
@@ -17,20 +17,19 @@
 package org.apache.camel.quarkus.main.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.CapabilityBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import org.apache.camel.quarkus.support.common.CamelCapabilities;
+import org.jboss.logging.Logger;
 
 class CamelMainFeature {
+    private static final Logger LOG = Logger.getLogger(CamelMainFeature.class);
     private static final String FEATURE = "camel-main";
 
     @BuildStep
     FeatureBuildItem feature() {
+        // see https://github.com/apache/camel-quarkus/issues/2358
+        LOG.warnf(
+                "camel-quarkus-main is deprecated and will be removed in the future; use camel-quarkus-core instead");
         return new FeatureBuildItem(FEATURE);
     }
 
-    @BuildStep
-    CapabilityBuildItem capability() {
-        return new CapabilityBuildItem(CamelCapabilities.MAIN);
-    }
 }
diff --git a/extensions-core/main/runtime/pom.xml b/extensions-core/main/runtime/pom.xml
index 2b11042..6fb1545 100644
--- a/extensions-core/main/runtime/pom.xml
+++ b/extensions-core/main/runtime/pom.xml
@@ -32,6 +32,7 @@
     <properties>
         <camel.quarkus.jvmSince>1.0.0</camel.quarkus.jvmSince>
         <camel.quarkus.nativeSince>1.0.0</camel.quarkus.nativeSince>
+        <quarkus.metadata.deprecated>true</quarkus.metadata.deprecated>
     </properties>
 
     <dependencyManagement>
@@ -48,23 +49,9 @@
 
     <dependencies>
         <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-arc</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core</artifactId>
         </dependency>
-
-        <!-- camel -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-main</artifactId>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions-core/main/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-core/main/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index 1f24897..514f7bf 100644
--- a/extensions-core/main/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions-core/main/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -29,3 +29,4 @@ metadata:
   - "integration"
   status:
   - "stable"
+  - "deprecated"
\ No newline at end of file
diff --git a/extensions-jvm/jfr/deployment/src/main/java/org/apache/camel/quarkus/component/jfr/deployment/JfrProcessor.java b/extensions-jvm/jfr/deployment/src/main/java/org/apache/camel/quarkus/component/jfr/deployment/JfrProcessor.java
index ef8ad15..8956642 100644
--- a/extensions-jvm/jfr/deployment/src/main/java/org/apache/camel/quarkus/component/jfr/deployment/JfrProcessor.java
+++ b/extensions-jvm/jfr/deployment/src/main/java/org/apache/camel/quarkus/component/jfr/deployment/JfrProcessor.java
@@ -23,7 +23,7 @@ import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.pkg.steps.NativeBuild;
 import org.apache.camel.quarkus.component.jfr.CamelJfrConfig;
 import org.apache.camel.quarkus.component.jfr.CamelJfrRecorder;
-import org.apache.camel.quarkus.core.deployment.CamelMainPresent;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainEnabled;
 import org.apache.camel.quarkus.core.deployment.spi.CamelServiceDestination;
 import org.apache.camel.quarkus.core.deployment.spi.CamelServicePatternBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelStartupStepRecorderBuildItem;
@@ -37,7 +37,7 @@ class JfrProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
-    @BuildStep(onlyIf = { CamelMainPresent.class })
+    @BuildStep(onlyIf = { CamelMainEnabled.class })
     CamelServicePatternBuildItem excludeCamelJfrServicePattern() {
         // Prevent camel main from overwriting the FlightRecorderStartupStepRecorder configured by this extension
         return new CamelServicePatternBuildItem(CamelServiceDestination.DISCOVERY, false,
diff --git a/integration-tests-support/custom-main-listener/deployment/src/main/java/org/apache/camel/quarkus/it/support/mainlistener/deployment/CustomMainListenerProcessor.java b/integration-tests-support/custom-main-listener/deployment/src/main/java/org/apache/camel/quarkus/it/support/mainlistener/deployment/CustomMainListenerProcessor.java
index 81f8ef3..2ddee21 100644
--- a/integration-tests-support/custom-main-listener/deployment/src/main/java/org/apache/camel/quarkus/it/support/mainlistener/deployment/CustomMainListenerProcessor.java
+++ b/integration-tests-support/custom-main-listener/deployment/src/main/java/org/apache/camel/quarkus/it/support/mainlistener/deployment/CustomMainListenerProcessor.java
@@ -19,8 +19,8 @@ package org.apache.camel.quarkus.it.support.mainlistener.deployment;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.annotations.ExecutionTime;
 import io.quarkus.deployment.annotations.Record;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelMainListenerBuildItem;
 import org.apache.camel.quarkus.it.support.mainlistener.CustomMainListenerRecorder;
-import org.apache.camel.quarkus.main.deployment.spi.CamelMainListenerBuildItem;
 
 public class CustomMainListenerProcessor {
     @Record(ExecutionTime.STATIC_INIT)
diff --git a/integration-tests-support/custom-routes-collector/deployment/src/main/java/org/apache/camel/quarkus/main/runtime/support/deployment/CustomRoutesCollectorProcessor.java b/integration-tests-support/custom-routes-collector/deployment/src/main/java/org/apache/camel/quarkus/main/runtime/support/deployment/CustomRoutesCollectorProcessor.java
index 5c03edf..41678e5 100644
--- a/integration-tests-support/custom-routes-collector/deployment/src/main/java/org/apache/camel/quarkus/main/runtime/support/deployment/CustomRoutesCollectorProcessor.java
+++ b/integration-tests-support/custom-routes-collector/deployment/src/main/java/org/apache/camel/quarkus/main/runtime/support/deployment/CustomRoutesCollectorProcessor.java
@@ -19,7 +19,7 @@ package org.apache.camel.quarkus.main.runtime.support.deployment;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.annotations.ExecutionTime;
 import io.quarkus.deployment.annotations.Record;
-import org.apache.camel.quarkus.main.deployment.spi.CamelRoutesCollectorBuildItem;
+import org.apache.camel.quarkus.core.deployment.main.spi.CamelRoutesCollectorBuildItem;
 import org.apache.camel.quarkus.main.runtime.support.CustomRoutesCollectorRecorder;
 
 public class CustomRoutesCollectorProcessor {
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainProducers.java b/integration-tests/netty/src/main/java/org/apache/camel/quarkus/component/netty/NettyBeans.java
similarity index 57%
rename from extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainProducers.java
rename to integration-tests/netty/src/main/java/org/apache/camel/quarkus/component/netty/NettyBeans.java
index f830cc3..7db57f5 100644
--- a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainProducers.java
+++ b/integration-tests/netty/src/main/java/org/apache/camel/quarkus/component/netty/NettyBeans.java
@@ -14,22 +14,31 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.main;
+package org.apache.camel.quarkus.component.netty;
 
 import javax.enterprise.inject.Produces;
-import javax.inject.Singleton;
+import javax.inject.Named;
 
-@Singleton
-public class CamelMainProducers {
-    private volatile CamelMain main;
+import io.netty.channel.ChannelHandler;
+import org.apache.camel.component.netty.ChannelHandlerFactory;
 
-    public void setMain(CamelMain main) {
-        this.main = main;
+public class NettyBeans {
+    @Produces
+    @Named("tcpNullDelimitedHandler")
+    ChannelHandlerFactory tcpNullDelimitedHandler() {
+        return NettyCodecHelper.createNullDelimitedHandler("tcp");
     }
 
-    @Singleton
     @Produces
-    CamelMain camelMain() {
-        return this.main;
+    @Named("bytesDecoder")
+    ChannelHandler bytesDecoder() {
+        return NettyCodecHelper.createBytesDecoder();
     }
+
+    @Produces
+    @Named("bytesEncoder")
+    private ChannelHandler bytesEncoder() {
+        return NettyCodecHelper.createBytesEncoder();
+    }
+
 }
diff --git a/integration-tests/netty/src/main/java/org/apache/camel/quarkus/component/netty/NettyRoutes.java b/integration-tests/netty/src/main/java/org/apache/camel/quarkus/component/netty/NettyRoutes.java
index 117d5f6..e46af69 100644
--- a/integration-tests/netty/src/main/java/org/apache/camel/quarkus/component/netty/NettyRoutes.java
+++ b/integration-tests/netty/src/main/java/org/apache/camel/quarkus/component/netty/NettyRoutes.java
@@ -16,22 +16,10 @@
  */
 package org.apache.camel.quarkus.component.netty;
 
-import io.netty.channel.ChannelHandler;
-import org.apache.camel.BindToRegistry;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.netty.ChannelHandlerFactory;
 
 public class NettyRoutes extends RouteBuilder {
 
-    @BindToRegistry("tcpNullDelimitedHandler")
-    private ChannelHandlerFactory tcpNullDelimitedHandler = NettyCodecHelper.createNullDelimitedHandler("tcp");
-
-    @BindToRegistry("bytesDecoder")
-    private ChannelHandler bytesDecoder = NettyCodecHelper.createBytesDecoder();
-
-    @BindToRegistry("bytesEncoder")
-    private ChannelHandler bytesEncoder = NettyCodecHelper.createBytesEncoder();
-
     @Override
     public void configure() {
         from("netty:tcp://localhost:{{camel.netty.test-tcp-port}}?textline=true&sync=true")