This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 94e7619f147d chore: camel-launcher - run the distribution ITs in
verify, not with -Dquickly, and in the native exe workflow (#28885)
94e7619f147d is described below
commit 94e7619f147dd3e8c3ef782254df8176371c03e2
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Nov 2 22:59:50 2026 +0100
chore: camel-launcher - run the distribution ITs in verify, not with
-Dquickly, and in the native exe workflow (#28885)
* chore: camel-launcher - run the distribution ITs in verify, not with
-Dquickly, and in the native exe workflow
The snapshot deploy (-Dcamel.exe.build=true -Dquickly) failed in
LauncherArchiveLayoutIT with a NoClassDefFoundError
for CamelLauncher. The require-native-exe profile bound failsafe whatever
-Dquickly says, and failsafe tested against
the main JAR, which the repackager rewrites with the Spring Boot layout
(classes under BOOT-INF/classes).
- The failsafe execution moves to a profile of its own, active without
-Dquickly, as the root POM does for surefire.
The ITs still only run with -Dcamel.exe.build=true (their
@EnabledIfSystemProperty).
- failsafe uses target/classes instead of the repackaged JAR.
- The "Build launcher with native camel.exe" step of
camel-launcher-native-exe.yml runs the tests: it is the only
build with the native exe files, so the ITs and PackagePlanTest ran
nowhere before.
Found by Aurelien Pupier in #28873.
* chore: camel-launcher - only the distribution ITs need
-Dcamel.exe.build=true, not PackagePlanTest
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: Claus Ibsen <[email protected]>
---
.github/workflows/camel-launcher-native-exe.yml | 5 ++++-
dsl/camel-jbang/camel-launcher/pom.xml | 23 +++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/camel-launcher-native-exe.yml
b/.github/workflows/camel-launcher-native-exe.yml
index 7a09a8963a51..c911d2b23df7 100644
--- a/.github/workflows/camel-launcher-native-exe.yml
+++ b/.github/workflows/camel-launcher-native-exe.yml
@@ -224,10 +224,13 @@ jobs:
# Plain mvn: once -am is gone this reactor is only a few modules, so
the mvnd
# daemon brings no parallelism benefit and adds a cold-start failure
mode.
# -P apache-snapshots is required here so the upstream modules resolve.
+ #
+ # With the tests: this is the only build with the native exe files,
which the *IT of the
+ # distributions check in verify (they are disabled without
-Dcamel.exe.build=true).
run: |
mvn -B -P apache-snapshots \
-pl buildingtools,tooling/camel-exe,dsl/camel-jbang/camel-launcher
verify \
- -Dcamel.exe.build=true -DskipTests
+ -Dcamel.exe.build=true
- name: Assert archive carries both exe files
run: |
ZIP=$(find dsl/camel-jbang/camel-launcher/target -maxdepth 1 -name
'camel-launcher-*-winget-bin.zip' -print -quit)
diff --git a/dsl/camel-jbang/camel-launcher/pom.xml
b/dsl/camel-jbang/camel-launcher/pom.xml
index bf8cf66cbed4..aed071e6eaf1 100644
--- a/dsl/camel-jbang/camel-launcher/pom.xml
+++ b/dsl/camel-jbang/camel-launcher/pom.xml
@@ -549,9 +549,32 @@
</execution>
</executions>
</plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!--
+ The integration tests of the distributions (*IT), which need the
native exe files and
+ only run with -Dcamel.exe.build=true (they are disabled
otherwise). Not with -Dquickly,
+ as the root POM does for the unit tests, so a snapshot deploy does
not run them.
+ -->
+ <profile>
+ <id>launcher-its</id>
+ <activation>
+ <property>
+ <name>!quickly</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
+ <configuration>
+ <!-- the classes, not the JAR: the JAR is
repackaged with the Spring Boot layout, where
+ the classes are under BOOT-INF/classes -->
+
<classesDirectory>${project.build.outputDirectory}</classesDirectory>
+ </configuration>
<executions>
<execution>
<goals>