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")