You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by tc...@apache.org on 2026/04/15 01:26:58 UTC

(camel-spring-boot) branch main updated (488c745e38b -> 96185c1e56f)

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

tcunning pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git


    from 488c745e38b Regen
     new 3fb3679389f Move platform-http-starter virtual threads tests to be integration tests
     new 3025df829ce Add more debugging to parse_errors
     new b4e993c0de2 Improve parse_errors.sh debugging output
     new 90514715ad0 Add PWD to parse_errors.sh debugging output
     new 96185c1e56f Add empty exclusion list for incremental builds

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/actions/incremental-build/exclusions.sh    |  8 ++
 .github/actions/incremental-build/parse_errors.sh  | 93 +++++++++++++++++-----
 .../camel-platform-http-starter/pom.xml            | 51 ++++++++++++
 ...ringBootPlatformHttpCamelVirtualThreadsIT.java} | 15 ++--
 ...formHttpMultipleExecutorsVirtualThreadsIT.java} | 17 ++--
 ...=> SpringBootPlatformHttpVirtualThreadsIT.java} | 15 ++--
 ...BootPlatformHttpVirtualThreadsOptimizedIT.java} | 15 ++--
 7 files changed, 175 insertions(+), 39 deletions(-)
 create mode 100755 .github/actions/incremental-build/exclusions.sh
 rename components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/{SpringBootPlatformHttpCamelVirtualThreadsTest.java => SpringBootPlatformHttpCamelVirtualThreadsIT.java} (88%)
 rename components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/{SpringBootPlatformHttpMultipleExecutorsVirtualThreadsTest.java => SpringBootPlatformHttpMultipleExecutorsVirtualThreadsIT.java} (91%)
 rename components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/{SpringBootPlatformHttpVirtualThreadsTest.java => SpringBootPlatformHttpVirtualThreadsIT.java} (87%)
 rename components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/{SpringBootPlatformHttpVirtualThreadsOptimizedTest.java => SpringBootPlatformHttpVirtualThreadsOptimizedIT.java} (89%)


(camel-spring-boot) 05/05: Add empty exclusion list for incremental builds

Posted by tc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tcunning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit 96185c1e56f0fc04f63e6a950e9dd67766732990
Author: Tom Cunningham <tc...@redhat.com>
AuthorDate: Tue Apr 14 16:47:46 2026 -0400

    Add empty exclusion list for incremental builds
    
    The default exclusion list from apache/camel contains modules that don't exist
    in camel-spring-boot (like :camel-allcomponents, :dummy-component, etc.), which
    causes Maven to fail with 'Could not find the selected project in the reactor'.
    
    This empty exclusion list overrides the defaults and allows incremental builds
    to work correctly.
---
 .github/actions/incremental-build/exclusions.sh | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/.github/actions/incremental-build/exclusions.sh b/.github/actions/incremental-build/exclusions.sh
new file mode 100755
index 00000000000..d9a046a35e9
--- /dev/null
+++ b/.github/actions/incremental-build/exclusions.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+# Exclusion list for camel-spring-boot incremental builds
+# Override the default exclusion list from apache/camel which contains modules
+# that don't exist in camel-spring-boot
+
+# camel-spring-boot has fewer generated/meta modules to exclude
+# Most exclusions from main Camel don't apply here
+EXCLUSION_LIST=""


(camel-spring-boot) 02/05: Add more debugging to parse_errors

Posted by tc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tcunning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit 3025df829ceda6a6c7e03cb79f874abae97a5f87
Author: Tom Cunningham <tc...@redhat.com>
AuthorDate: Tue Apr 14 12:53:11 2026 -0400

    Add more debugging to parse_errors
---
 .github/actions/incremental-build/parse_errors.sh | 82 +++++++++++++++++++----
 1 file changed, 68 insertions(+), 14 deletions(-)

diff --git a/.github/actions/incremental-build/parse_errors.sh b/.github/actions/incremental-build/parse_errors.sh
index 9f01540debc..24e904fd078 100755
--- a/.github/actions/incremental-build/parse_errors.sh
+++ b/.github/actions/incremental-build/parse_errors.sh
@@ -21,43 +21,82 @@ set +e
 
 LOG_FILE=$1
 
+echo "[DEBUG parse_errors.sh] Processing: $LOG_FILE" >&2
+
 # Extract module path from log file path
 # e.g., ./components-starter/camel-slack-starter/target/surefire-reports/foo.txt -> components-starter/camel-slack-starter
 MODULE_PATH=$(echo "$LOG_FILE" | sed 's|^\./||' | sed 's|/target/.*||')
+echo "[DEBUG parse_errors.sh] Module path: $MODULE_PATH" >&2
 
 # Skip if file doesn't exist or is not readable
-if [[ ! -f "$LOG_FILE" ]] || [[ ! -r "$LOG_FILE" ]]; then
+if [[ ! -f "$LOG_FILE" ]]; then
+  echo "[DEBUG parse_errors.sh] File does not exist: $LOG_FILE" >&2
   exit 0
 fi
 
+if [[ ! -r "$LOG_FILE" ]]; then
+  echo "[DEBUG parse_errors.sh] File is not readable: $LOG_FILE" >&2
+  exit 0
+fi
+
+echo "[DEBUG parse_errors.sh] File exists and is readable, size: $(wc -c < "$LOG_FILE") bytes" >&2
+
 # Extract failures/errors
+echo "[DEBUG parse_errors.sh] Searching for FAILURE|ERROR patterns..." >&2
 raw_failures=$(cat "$LOG_FILE" | egrep "FAILURE|ERROR" 2>/dev/null || true)
 if [[ -z "$raw_failures" ]]; then
+  echo "[DEBUG parse_errors.sh] No FAILURE or ERROR patterns found in file" >&2
   exit 0
 fi
 
+echo "[DEBUG parse_errors.sh] Found FAILURE/ERROR entries (count: $(echo "$raw_failures" | wc -l))" >&2
+echo "[DEBUG parse_errors.sh] First few lines of raw_failures:" >&2
+echo "$raw_failures" | head -5 >&2
+
 # Look for "Time elapsed" entries and extract org.* test names
+echo "[DEBUG parse_errors.sh] Searching for 'Time elapsed' entries..." >&2
 time_elapsed_entries=$(echo "$raw_failures" | grep "Time elapsed" 2>/dev/null || true)
+echo "[DEBUG parse_errors.sh] Time elapsed entries found: $(echo "$time_elapsed_entries" | wc -l)" >&2
+
+echo "[DEBUG parse_errors.sh] Searching for org.* entries..." >&2
 org_entries=$(echo "$time_elapsed_entries" | egrep "^org" 2>/dev/null || true)
+echo "[DEBUG parse_errors.sh] org.* entries found: $(echo "$org_entries" | wc -l)" >&2
 
 if [[ -n "$org_entries" ]]; then
+  echo "[DEBUG parse_errors.sh] Processing org_entries:" >&2
+  echo "$org_entries" >&2
+
   # Generate summary with module path included in test name
   # Format: | Module::TestClass | Duration | Type |
+  echo "[DEBUG parse_errors.sh] Generating failed_summary..." >&2
   failed_summary=$(echo "$org_entries" | sed 's/\!//g' | awk -v mod="$MODULE_PATH" -F ' ' '{printf "| **%s**::%s | %s%s | %s |\n", mod, $1,$5,$6, $8}' 2>/dev/null || true)
+  echo "[DEBUG parse_errors.sh] failed_summary generated (length: ${#failed_summary})" >&2
 
-  if [[ -n "$failed_summary" ]] && [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then
-    # Add to GitHub step summary
-    echo "$failed_summary" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-
-    # Add detailed error output
-    echo "" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-    echo "<details><summary>❌ Failure details for $MODULE_PATH</summary>" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-    echo "" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-    echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-    cat "$LOG_FILE" | egrep -A 10 "FAILURE|ERROR" | head -100 >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-    echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-    echo "</details>" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-    echo "" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+  if [[ -n "$failed_summary" ]]; then
+    echo "[DEBUG parse_errors.sh] failed_summary is not empty" >&2
+
+    if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then
+      echo "[DEBUG parse_errors.sh] GITHUB_STEP_SUMMARY is set to: $GITHUB_STEP_SUMMARY" >&2
+
+      # Add to GitHub step summary
+      echo "[DEBUG parse_errors.sh] Writing summary to GITHUB_STEP_SUMMARY..." >&2
+      echo "$failed_summary" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+
+      # Add detailed error output
+      echo "" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      echo "<details><summary>❌ Failure details for $MODULE_PATH</summary>" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      echo "" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      cat "$LOG_FILE" | egrep -A 10 "FAILURE|ERROR" | head -100 >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      echo "</details>" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      echo "" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
+      echo "[DEBUG parse_errors.sh] Summary written to GITHUB_STEP_SUMMARY" >&2
+    else
+      echo "[DEBUG parse_errors.sh] GITHUB_STEP_SUMMARY is not set, skipping summary output" >&2
+    fi
+  else
+    echo "[DEBUG parse_errors.sh] failed_summary is empty, skipping summary generation" >&2
   fi
 
   # Output to stderr for CI logs
@@ -71,6 +110,21 @@ if [[ -n "$org_entries" ]]; then
   cat "$LOG_FILE" | egrep -A 10 "FAILURE|ERROR" | head -50 >&2
   echo "=============================================" >&2
   echo "" >&2
+else
+  echo "[DEBUG parse_errors.sh] No org.* entries found, but raw_failures exist" >&2
+  echo "[DEBUG parse_errors.sh] Outputting raw_failures to help debug:" >&2
+  echo "" >&2
+  echo "=============================================" >&2
+  echo "FAILURE/ERROR in module: $MODULE_PATH (no org.* pattern match)" >&2
+  echo "=============================================" >&2
+  echo "Raw failures found:" >&2
+  echo "$raw_failures" | head -20 >&2
+  echo "" >&2
+  echo "Full log file content (first 100 lines):" >&2
+  head -100 "$LOG_FILE" >&2
+  echo "=============================================" >&2
+  echo "" >&2
 fi
 
+echo "[DEBUG parse_errors.sh] Finished processing $LOG_FILE" >&2
 exit 0


(camel-spring-boot) 03/05: Improve parse_errors.sh debugging output

Posted by tc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tcunning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit b4e993c0de2029deb4b71ade3813e83dbc4a0b2b
Author: Tom Cunningham <tc...@redhat.com>
AuthorDate: Tue Apr 14 15:10:06 2026 -0400

    Improve parse_errors.sh debugging output
    
    Add clear START/END banners with timestamps and visual indicators to make
    it easier to trace parse_errors.sh execution in CI logs.
    
    Changes:
    - Add timestamp banners at start and end of script execution
    - Replace [DEBUG] prefix with cleaner [parse_errors.sh] prefix
    - Add visual indicators: ✓ ✗ ⊘ ⚠ for status
    - Use box-drawing characters for failure sections
    - Always show exit 0 with timestamp at end
    
    Co-Authored-By: Claude Sonnet 4.5 <no...@anthropic.com>
---
 .github/actions/incremental-build/parse_errors.sh | 70 +++++++++++------------
 1 file changed, 35 insertions(+), 35 deletions(-)

diff --git a/.github/actions/incremental-build/parse_errors.sh b/.github/actions/incremental-build/parse_errors.sh
index 24e904fd078..a1d7a70749b 100755
--- a/.github/actions/incremental-build/parse_errors.sh
+++ b/.github/actions/incremental-build/parse_errors.sh
@@ -21,65 +21,67 @@ set +e
 
 LOG_FILE=$1
 
-echo "[DEBUG parse_errors.sh] Processing: $LOG_FILE" >&2
+echo "============================================================" >&2
+echo "[parse_errors.sh START] $(date '+%Y-%m-%d %H:%M:%S')" >&2
+echo "[parse_errors.sh] Processing: $LOG_FILE" >&2
+echo "============================================================" >&2
 
 # Extract module path from log file path
 # e.g., ./components-starter/camel-slack-starter/target/surefire-reports/foo.txt -> components-starter/camel-slack-starter
 MODULE_PATH=$(echo "$LOG_FILE" | sed 's|^\./||' | sed 's|/target/.*||')
-echo "[DEBUG parse_errors.sh] Module path: $MODULE_PATH" >&2
+echo "[parse_errors.sh] Module: $MODULE_PATH" >&2
 
 # Skip if file doesn't exist or is not readable
 if [[ ! -f "$LOG_FILE" ]]; then
-  echo "[DEBUG parse_errors.sh] File does not exist: $LOG_FILE" >&2
+  echo "[parse_errors.sh] ⊘ File does not exist, skipping" >&2
+  echo "[parse_errors.sh END] $(date '+%Y-%m-%d %H:%M:%S') - exit 0" >&2
+  echo "============================================================" >&2
   exit 0
 fi
 
 if [[ ! -r "$LOG_FILE" ]]; then
-  echo "[DEBUG parse_errors.sh] File is not readable: $LOG_FILE" >&2
+  echo "[parse_errors.sh] ⊘ File not readable, skipping" >&2
+  echo "[parse_errors.sh END] $(date '+%Y-%m-%d %H:%M:%S') - exit 0" >&2
+  echo "============================================================" >&2
   exit 0
 fi
 
-echo "[DEBUG parse_errors.sh] File exists and is readable, size: $(wc -c < "$LOG_FILE") bytes" >&2
+echo "[parse_errors.sh] File size: $(wc -c < "$LOG_FILE") bytes" >&2
 
 # Extract failures/errors
-echo "[DEBUG parse_errors.sh] Searching for FAILURE|ERROR patterns..." >&2
+echo "[parse_errors.sh] Searching for FAILURE|ERROR patterns..." >&2
 raw_failures=$(cat "$LOG_FILE" | egrep "FAILURE|ERROR" 2>/dev/null || true)
 if [[ -z "$raw_failures" ]]; then
-  echo "[DEBUG parse_errors.sh] No FAILURE or ERROR patterns found in file" >&2
+  echo "[parse_errors.sh] ✓ No failures found" >&2
+  echo "[parse_errors.sh END] $(date '+%Y-%m-%d %H:%M:%S') - exit 0" >&2
+  echo "============================================================" >&2
   exit 0
 fi
 
-echo "[DEBUG parse_errors.sh] Found FAILURE/ERROR entries (count: $(echo "$raw_failures" | wc -l))" >&2
-echo "[DEBUG parse_errors.sh] First few lines of raw_failures:" >&2
+echo "[parse_errors.sh] ✗ Found FAILURE/ERROR entries: $(echo "$raw_failures" | wc -l)" >&2
+echo "[parse_errors.sh] First 5 lines:" >&2
 echo "$raw_failures" | head -5 >&2
 
 # Look for "Time elapsed" entries and extract org.* test names
-echo "[DEBUG parse_errors.sh] Searching for 'Time elapsed' entries..." >&2
 time_elapsed_entries=$(echo "$raw_failures" | grep "Time elapsed" 2>/dev/null || true)
-echo "[DEBUG parse_errors.sh] Time elapsed entries found: $(echo "$time_elapsed_entries" | wc -l)" >&2
+echo "[parse_errors.sh] Time elapsed entries: $(echo "$time_elapsed_entries" | wc -l)" >&2
 
-echo "[DEBUG parse_errors.sh] Searching for org.* entries..." >&2
 org_entries=$(echo "$time_elapsed_entries" | egrep "^org" 2>/dev/null || true)
-echo "[DEBUG parse_errors.sh] org.* entries found: $(echo "$org_entries" | wc -l)" >&2
+echo "[parse_errors.sh] org.* test entries: $(echo "$org_entries" | wc -l)" >&2
 
 if [[ -n "$org_entries" ]]; then
-  echo "[DEBUG parse_errors.sh] Processing org_entries:" >&2
+  echo "[parse_errors.sh] Processing failures:" >&2
   echo "$org_entries" >&2
 
   # Generate summary with module path included in test name
   # Format: | Module::TestClass | Duration | Type |
-  echo "[DEBUG parse_errors.sh] Generating failed_summary..." >&2
   failed_summary=$(echo "$org_entries" | sed 's/\!//g' | awk -v mod="$MODULE_PATH" -F ' ' '{printf "| **%s**::%s | %s%s | %s |\n", mod, $1,$5,$6, $8}' 2>/dev/null || true)
-  echo "[DEBUG parse_errors.sh] failed_summary generated (length: ${#failed_summary})" >&2
 
   if [[ -n "$failed_summary" ]]; then
-    echo "[DEBUG parse_errors.sh] failed_summary is not empty" >&2
-
     if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then
-      echo "[DEBUG parse_errors.sh] GITHUB_STEP_SUMMARY is set to: $GITHUB_STEP_SUMMARY" >&2
+      echo "[parse_errors.sh] Writing to GITHUB_STEP_SUMMARY" >&2
 
       # Add to GitHub step summary
-      echo "[DEBUG parse_errors.sh] Writing summary to GITHUB_STEP_SUMMARY..." >&2
       echo "$failed_summary" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
 
       # Add detailed error output
@@ -91,40 +93,38 @@ if [[ -n "$org_entries" ]]; then
       echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
       echo "</details>" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
       echo "" >> "$GITHUB_STEP_SUMMARY" 2>/dev/null || true
-      echo "[DEBUG parse_errors.sh] Summary written to GITHUB_STEP_SUMMARY" >&2
     else
-      echo "[DEBUG parse_errors.sh] GITHUB_STEP_SUMMARY is not set, skipping summary output" >&2
+      echo "[parse_errors.sh] ⚠ GITHUB_STEP_SUMMARY not set, cannot write summary" >&2
     fi
-  else
-    echo "[DEBUG parse_errors.sh] failed_summary is empty, skipping summary generation" >&2
   fi
 
   # Output to stderr for CI logs
   echo "" >&2
-  echo "=============================================" >&2
-  echo "FAILURE in module: $MODULE_PATH" >&2
-  echo "=============================================" >&2
+  echo "╔═════════════════════════════════════════════╗" >&2
+  echo "║  FAILURE in module: $MODULE_PATH" >&2
+  echo "╚═════════════════════════════════════════════╝" >&2
   echo "$org_entries" >&2
   echo "" >&2
   echo "Full error details:" >&2
   cat "$LOG_FILE" | egrep -A 10 "FAILURE|ERROR" | head -50 >&2
-  echo "=============================================" >&2
+  echo "╚═════════════════════════════════════════════╝" >&2
   echo "" >&2
 else
-  echo "[DEBUG parse_errors.sh] No org.* entries found, but raw_failures exist" >&2
-  echo "[DEBUG parse_errors.sh] Outputting raw_failures to help debug:" >&2
+  echo "[parse_errors.sh] ⚠ No org.* pattern match (unusual format)" >&2
   echo "" >&2
-  echo "=============================================" >&2
-  echo "FAILURE/ERROR in module: $MODULE_PATH (no org.* pattern match)" >&2
-  echo "=============================================" >&2
+  echo "╔═════════════════════════════════════════════╗" >&2
+  echo "║  ERROR in module: $MODULE_PATH (unusual format)" >&2
+  echo "╚═════════════════════════════════════════════╝" >&2
   echo "Raw failures found:" >&2
   echo "$raw_failures" | head -20 >&2
   echo "" >&2
   echo "Full log file content (first 100 lines):" >&2
   head -100 "$LOG_FILE" >&2
-  echo "=============================================" >&2
+  echo "╚═════════════════════════════════════════════╝" >&2
   echo "" >&2
 fi
 
-echo "[DEBUG parse_errors.sh] Finished processing $LOG_FILE" >&2
+echo "============================================================" >&2
+echo "[parse_errors.sh END] $(date '+%Y-%m-%d %H:%M:%S') - exit 0" >&2
+echo "============================================================" >&2
 exit 0


(camel-spring-boot) 01/05: Move platform-http-starter virtual threads tests to be integration tests

Posted by tc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tcunning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit 3fb3679389fed04b5c2bfeacb1f5fbb9f214ee48
Author: Tom Cunningham <tc...@redhat.com>
AuthorDate: Tue Apr 14 11:09:02 2026 -0400

    Move platform-http-starter virtual threads tests to be integration tests
---
 .../camel-platform-http-starter/pom.xml            | 51 ++++++++++++++++++++++
 ...ringBootPlatformHttpCamelVirtualThreadsIT.java} | 15 ++++---
 ...formHttpMultipleExecutorsVirtualThreadsIT.java} | 17 +++++---
 ...=> SpringBootPlatformHttpVirtualThreadsIT.java} | 15 ++++---
 ...BootPlatformHttpVirtualThreadsOptimizedIT.java} | 15 ++++---
 5 files changed, 92 insertions(+), 21 deletions(-)

diff --git a/components-starter/camel-platform-http-starter/pom.xml b/components-starter/camel-platform-http-starter/pom.xml
index 3cdca1a7092..e1399b96712 100644
--- a/components-starter/camel-platform-http-starter/pom.xml
+++ b/components-starter/camel-platform-http-starter/pom.xml
@@ -174,4 +174,55 @@
     </dependency>
     <!--END OF GENERATED CODE-->
   </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${maven-surefire-plugin-version}</version>
+        <configuration>
+          <!-- Exclude integration tests from unit test phase -->
+          <excludes>
+            <exclude>**/*IT.java</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+    <!-- Profile to run integration tests locally but not in CI -->
+    <profile>
+      <id>run-integration-tests</id>
+      <activation>
+        <property>
+          <name>ci.env.name</name>
+          <value>!github.com</value>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-failsafe-plugin</artifactId>
+            <version>${maven-surefire-plugin-version}</version>
+            <configuration>
+              <!-- Fork a new JVM for each IT test class to ensure clean static initialization -->
+              <forkCount>1</forkCount>
+              <reuseForks>false</reuseForks>
+              <!-- Set system properties before JVM starts -->
+              <argLine>-Dspring.threads.virtual.enabled=true -Dcamel.threads.virtual.enabled=true</argLine>
+            </configuration>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>integration-test</goal>
+                  <goal>verify</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpCamelVirtualThreadsTest.java b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpCamelVirtualThreadsIT.java
similarity index 88%
rename from components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpCamelVirtualThreadsTest.java
rename to components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpCamelVirtualThreadsIT.java
index 44835a2fc0f..ecc2d743c80 100644
--- a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpCamelVirtualThreadsTest.java
+++ b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpCamelVirtualThreadsIT.java
@@ -20,6 +20,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spring.boot.CamelAutoConfiguration;
 import org.apache.camel.test.spring.junit6.CamelSpringBootTest;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Bean;
@@ -29,16 +30,20 @@ import org.springframework.security.web.SecurityFilterChain;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+@Isolated
 @EnableAutoConfiguration
 @CamelSpringBootTest
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = { CamelAutoConfiguration.class,
-        SpringBootPlatformHttpCamelVirtualThreadsTest.class, SpringBootPlatformHttpCamelVirtualThreadsTest.TestConfiguration.class,
+        SpringBootPlatformHttpCamelVirtualThreadsIT.class, SpringBootPlatformHttpCamelVirtualThreadsIT.TestConfiguration.class,
         PlatformHttpComponentAutoConfiguration.class, SpringBootPlatformHttpAutoConfiguration.class },
-    properties = "spring.threads.virtual.enabled=true")
-public class SpringBootPlatformHttpCamelVirtualThreadsTest extends PlatformHttpBase {
+    properties = {
+        "spring.threads.virtual.enabled=true",
+        "camel.threads.virtual.enabled=true"
+    })
+public class SpringBootPlatformHttpCamelVirtualThreadsIT extends PlatformHttpBase {
 
-    private static final String postRouteId = "SpringBootPlatformHttpCamelVirtualThreadsTest_mypost";
-    private static final String getRouteId = "SpringBootPlatformHttpCamelVirtualThreadsTest_myget";
+    private static final String postRouteId = "SpringBootPlatformHttpCamelVirtualThreadsIT_mypost";
+    private static final String getRouteId = "SpringBootPlatformHttpCamelVirtualThreadsIT_myget";
 
     // *************************************
     // Config
diff --git a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpMultipleExecutorsVirtualThreadsTest.java b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpMultipleExecutorsVirtualThreadsIT.java
similarity index 91%
rename from components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpMultipleExecutorsVirtualThreadsTest.java
rename to components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpMultipleExecutorsVirtualThreadsIT.java
index 8c6f345aa1b..06af1e805f0 100644
--- a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpMultipleExecutorsVirtualThreadsTest.java
+++ b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpMultipleExecutorsVirtualThreadsIT.java
@@ -21,6 +21,7 @@ import org.apache.camel.spring.boot.CamelAutoConfiguration;
 import org.apache.camel.test.spring.junit6.CamelSpringBootTest;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
@@ -38,22 +39,26 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import java.util.List;
 import java.util.concurrent.Executor;
 
+@Isolated
 @EnableAutoConfiguration
 @CamelSpringBootTest
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = { CamelAutoConfiguration.class,
-        SpringBootPlatformHttpMultipleExecutorsVirtualThreadsTest.class,
-        SpringBootPlatformHttpMultipleExecutorsVirtualThreadsTest.TestConfiguration.class,
+        SpringBootPlatformHttpMultipleExecutorsVirtualThreadsIT.class,
+        SpringBootPlatformHttpMultipleExecutorsVirtualThreadsIT.TestConfiguration.class,
         PlatformHttpComponentAutoConfiguration.class, SpringBootPlatformHttpAutoConfiguration.class },
-    properties = "spring.threads.virtual.enabled=true")
+    properties = {
+        "spring.threads.virtual.enabled=true",
+        "camel.threads.virtual.enabled=true"
+    })
 @EnableScheduling
 @AutoConfigureRestTestClient
-public class SpringBootPlatformHttpMultipleExecutorsVirtualThreadsTest extends PlatformHttpBase {
+public class SpringBootPlatformHttpMultipleExecutorsVirtualThreadsIT extends PlatformHttpBase {
 
     private static final String THREAD_PREFIX = "myThread-";
 
-    private static final String postRouteId = "SpringBootPlatformHttpMultipleExecutorsTest_mypost";
+    private static final String postRouteId = "SpringBootPlatformHttpMultipleExecutorsIT_mypost";
 
-    private static final String getRouteId = "SpringBootPlatformHttpMultipleExecutorsTest_myget";
+    private static final String getRouteId = "SpringBootPlatformHttpMultipleExecutorsIT_myget";
 
     // *************************************
     // Config
diff --git a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsTest.java b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsIT.java
similarity index 87%
rename from components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsTest.java
rename to components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsIT.java
index ca4d64af0e2..094cffed6ad 100644
--- a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsTest.java
+++ b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsIT.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.platform.http.springboot;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spring.boot.CamelAutoConfiguration;
 import org.apache.camel.test.spring.junit6.CamelSpringBootTest;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Bean;
@@ -26,17 +27,21 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.web.SecurityFilterChain;
 
+@Isolated
 @EnableAutoConfiguration
 @CamelSpringBootTest
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = { CamelAutoConfiguration.class,
-        SpringBootPlatformHttpVirtualThreadsTest.class, SpringBootPlatformHttpVirtualThreadsTest.TestConfiguration.class,
+        SpringBootPlatformHttpVirtualThreadsIT.class, SpringBootPlatformHttpVirtualThreadsIT.TestConfiguration.class,
         PlatformHttpComponentAutoConfiguration.class, SpringBootPlatformHttpAutoConfiguration.class },
-    properties = "spring.threads.virtual.enabled=true")
-public class SpringBootPlatformHttpVirtualThreadsTest extends PlatformHttpBase {
+    properties = {
+        "spring.threads.virtual.enabled=true",
+        "camel.threads.virtual.enabled=true"
+    })
+public class SpringBootPlatformHttpVirtualThreadsIT extends PlatformHttpBase {
 
-    private static final String postRouteId = "SpringBootPlatformHttpTest_mypost";
+    private static final String postRouteId = "SpringBootPlatformHttpIT_mypost";
 
-    private static final String getRouteId = "SpringBootPlatformHttpTest_myget";
+    private static final String getRouteId = "SpringBootPlatformHttpIT_myget";
 
     // *************************************
     // Config
diff --git a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsOptimizedTest.java b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsOptimizedIT.java
similarity index 89%
rename from components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsOptimizedTest.java
rename to components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsOptimizedIT.java
index 9062616088c..b3e0bfa73f1 100644
--- a/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsOptimizedTest.java
+++ b/components-starter/camel-platform-http-starter/src/test/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpVirtualThreadsOptimizedIT.java
@@ -20,6 +20,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spring.boot.CamelAutoConfiguration;
 import org.apache.camel.test.spring.junit6.CamelSpringBootTest;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -35,16 +36,20 @@ import java.util.concurrent.Executor;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+@Isolated
 @EnableAutoConfiguration
 @CamelSpringBootTest
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = { CamelAutoConfiguration.class,
-        SpringBootPlatformHttpVirtualThreadsOptimizedTest.class, SpringBootPlatformHttpVirtualThreadsOptimizedTest.TestConfiguration.class,
+        SpringBootPlatformHttpVirtualThreadsOptimizedIT.class, SpringBootPlatformHttpVirtualThreadsOptimizedIT.TestConfiguration.class,
         PlatformHttpComponentAutoConfiguration.class, SpringBootPlatformHttpAutoConfiguration.class },
-    properties = "spring.threads.virtual.enabled=true")
-public class SpringBootPlatformHttpVirtualThreadsOptimizedTest extends PlatformHttpBase {
+    properties = {
+        "spring.threads.virtual.enabled=true",
+        "camel.threads.virtual.enabled=true"
+    })
+public class SpringBootPlatformHttpVirtualThreadsOptimizedIT extends PlatformHttpBase {
 
-    private static final String postRouteId = "SpringBootPlatformHttpVirtualThreadsOptimizedTest_mypost";
-    private static final String getRouteId = "SpringBootPlatformHttpVirtualThreadsOptimizedTest_myget";
+    private static final String postRouteId = "SpringBootPlatformHttpVirtualThreadsOptimizedIT_mypost";
+    private static final String getRouteId = "SpringBootPlatformHttpVirtualThreadsOptimizedIT_myget";
 
     @Autowired
     private List<Executor> executors;


(camel-spring-boot) 04/05: Add PWD to parse_errors.sh debugging output

Posted by tc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tcunning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit 90514715ad026c76209304b129f28042ca497ac5
Author: Tom Cunningham <tc...@redhat.com>
AuthorDate: Tue Apr 14 16:01:32 2026 -0400

    Add PWD to parse_errors.sh debugging output
---
 .github/actions/incremental-build/parse_errors.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.github/actions/incremental-build/parse_errors.sh b/.github/actions/incremental-build/parse_errors.sh
index a1d7a70749b..464b56cefdb 100755
--- a/.github/actions/incremental-build/parse_errors.sh
+++ b/.github/actions/incremental-build/parse_errors.sh
@@ -21,8 +21,11 @@ set +e
 
 LOG_FILE=$1
 
+# Echo immediately to verify script is being invoked
+echo "" >&2
 echo "============================================================" >&2
 echo "[parse_errors.sh START] $(date '+%Y-%m-%d %H:%M:%S')" >&2
+echo "[parse_errors.sh] PWD: $(pwd)" >&2
 echo "[parse_errors.sh] Processing: $LOG_FILE" >&2
 echo "============================================================" >&2