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 9c7d1ad4efba Update releases
9c7d1ad4efba is described below
commit 9c7d1ad4efbaccff6c213572b420fc75198beb1b
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Aug 5 21:08:41 2026 +0200
Update releases
camel-tui - use F4 as the edit key instead of e
camel-tui - fix integration count inflating when phantom integration is
selected
When the selected integration is a phantom (opened project), its PID
cannot be parsed as a number, causing the scan to refresh all PIDs
while the carry-forward section also re-added all previous entries,
duplicating integrations on every refresh cycle.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: Claus Ibsen <[email protected]>
---
.../camel/catalog/releases/camel-quarkus-releases.json | 14 ++++++++++++++
.../dsl/jbang/core/commands/tui/DataRefreshService.java | 3 ++-
.../camel/dsl/jbang/core/commands/tui/SourceTab.java | 8 ++++----
.../camel/dsl/jbang/core/commands/tui/SourceViewer.java | 6 +++---
.../camel/dsl/jbang/core/commands/tui/SqlQueryTab.java | 15 ++++++++-------
.../camel/dsl/jbang/core/commands/tui/SqlTraceTab.java | 5 +++--
6 files changed, 34 insertions(+), 17 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
index fbc7f674715b..f9d9cc318c7e 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
@@ -386,6 +386,13 @@
"kind": "lts",
"jdk": "17,21"
},
+ {
+ "version": "3.27.5",
+ "date": "2026-07-13",
+ "eol": "2026-08-18",
+ "kind": "lts",
+ "jdk": "17,21"
+ },
{
"version": "3.29.0",
"date": "2025-10-27",
@@ -420,6 +427,13 @@
"kind": "lts",
"jdk": "17,21"
},
+ {
+ "version": "3.33.2",
+ "date": "2026-07-13",
+ "eol": "2027-02-16",
+ "kind": "lts",
+ "jdk": "17,21"
+ },
{
"version": "3.35.0",
"date": "2026-04-27",
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
index 3c998fea2df5..6a1e04cd045a 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
@@ -290,12 +290,13 @@ class DataRefreshService {
if (checkLiveness) {
lastLivenessCheckTime = now;
}
+ Set<String> refreshedPids = infos.stream().map(i ->
i.pid).collect(Collectors.toSet());
List<IntegrationInfo> previous = data.get();
for (IntegrationInfo prev : previous) {
if (prev.phantom) {
continue;
}
- if (!prev.vanishing && !ctx.selectedPid.equals(prev.pid)) {
+ if (!prev.vanishing && !refreshedPids.contains(prev.pid)) {
if (checkLiveness) {
try {
long pid = Long.parseLong(prev.pid);
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceTab.java
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceTab.java
index 7d6ae5926e51..8d4d1ddcfb3b 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceTab.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceTab.java
@@ -329,12 +329,12 @@ class SourceTab extends AbstractTab {
## File List (left panel)
- **Up/Down** — navigate files
- **Enter** — open file or directory
- - **e** — open file directly in edit mode
+ - **F4** — open file directly in edit mode
- **Backspace** — go to parent directory
## Source Viewer (right panel)
- **Up/Down** — scroll through source code
- - **e** — edit local file (plain text; only when file is
writable)
+ - **F4** — edit local file (plain text; only when file is
writable)
- **Esc** — cancel edit (in edit mode) or close viewer
- **F5** — save file (in edit mode; Camel dev mode
auto-reloads)
- **Space** — cycle format (YAML/Java/XML) for Camel routes
@@ -346,7 +346,7 @@ class SourceTab extends AbstractTab {
- **Esc/c** — close source viewer
## Edit Mode (Tab Completion)
- Press **e** to enter edit mode, then **Tab** for context-aware
completion:
+ Press **F4** to enter edit mode, then **Tab** for
context-aware completion:
**application.properties:**
- Key completion for `camel.main.*`, `camel.component.*`,
`camel.dataformat.*`,
@@ -527,7 +527,7 @@ class SourceTab extends AbstractTab {
openSelectedEntry();
return true;
}
- if (ke.isChar('e')) {
+ if (ke.isKey(KeyCode.F4)) {
openSelectedEntry();
if (sourceViewer.isVisible() && sourceViewer.isEditable()) {
sourceViewer.enterEditMode();
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceViewer.java
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceViewer.java
index 28e3afcc364b..2fbec7cc1ac4 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceViewer.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SourceViewer.java
@@ -340,7 +340,7 @@ class SourceViewer {
hide();
return true;
}
- if (isEditable() && ke.isChar('e')) {
+ if (isEditable() && ke.isKey(KeyCode.F4)) {
enterEditMode();
return true;
}
@@ -1938,7 +1938,7 @@ class SourceViewer {
TuiHelper.hint(spans, "Space", "format");
TuiHelper.hint(spans, "PgUp/PgDn", "page");
if (isEditable()) {
- TuiHelper.hint(spans, "e", "edit");
+ TuiHelper.hint(spans, "F4", "edit");
}
return;
}
@@ -1952,7 +1952,7 @@ class SourceViewer {
TuiHelper.hint(spans, "Esc/c", "close");
}
if (isEditable()) {
- TuiHelper.hint(spans, "e", "edit");
+ TuiHelper.hint(spans, "F4", "edit");
}
if (quickDocProvider != null) {
TuiHelper.hint(spans, "i", "quick doc" + (quickDocEnabled ? "
[on]" : ""));
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlQueryTab.java
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlQueryTab.java
index 8bea8e086eb7..003597bcd80b 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlQueryTab.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlQueryTab.java
@@ -182,16 +182,17 @@ class SqlQueryTab extends AbstractTab {
return true;
}
- // Enter: newline in input, or open edit in results
+ // F4: open edit in results
+ if (!focusOnInput && ke.isKey(KeyCode.F4) && isEditable()) {
+ openEditMode();
+ return true;
+ }
+ // Enter: newline in input
if (ke.isConfirm()) {
if (focusOnInput) {
sqlInput.insert('\n');
return true;
}
- // results mode: open edit if editable
- if (isEditable()) {
- openEditMode();
- }
return true;
}
@@ -837,7 +838,7 @@ class SqlQueryTab extends AbstractTab {
hint(spans, "Tab", "input");
hint(spans, TuiIcons.HINT_SCROLL, "navigate");
if (isEditable()) {
- hint(spans, "Enter", "edit");
+ hint(spans, "F4", "edit");
}
}
}
@@ -866,7 +867,7 @@ class SqlQueryTab extends AbstractTab {
- Use **Ctrl+Left/Right** to switch between DataSources (when
multiple exist)
## Inline Editing
- - For simple single-table SELECT queries, press **Enter** on a
result row to edit
+ - For simple single-table SELECT queries, press **F4** on a
result row to edit
- Primary key columns (marked with *) are read-only
- Changed values are highlighted in green
- Press **F5** to save changes (executes an UPDATE statement)
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlTraceTab.java
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlTraceTab.java
index 7e76f77e0750..738a1c501fe5 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlTraceTab.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/SqlTraceTab.java
@@ -32,6 +32,7 @@ import dev.tamboui.terminal.Frame;
import dev.tamboui.text.Line;
import dev.tamboui.text.Span;
import dev.tamboui.text.Text;
+import dev.tamboui.tui.event.KeyCode;
import dev.tamboui.tui.event.KeyEvent;
import dev.tamboui.tui.event.MouseEvent;
import dev.tamboui.widgets.block.Block;
@@ -85,7 +86,7 @@ class SqlTraceTab extends AbstractTableTab {
wordWrap = !wordWrap;
return true;
}
- if (ke.isCharIgnoreCase('e') && editSqlAction != null) {
+ if (ke.isKey(KeyCode.F4) && editSqlAction != null) {
String sql = getSelectedQuery();
if (sql != null) {
editSqlAction.accept(sql);
@@ -389,7 +390,7 @@ class SqlTraceTab extends AbstractTableTab {
hint(spans, TuiIcons.HINT_SCROLL, "navigate");
hint(spans, "Home/End", "top/end");
hint(spans, "PgUp/Dn", "detail");
- hint(spans, "e", "edit SQL");
+ hint(spans, "F4", "edit SQL");
hint(spans, "s", "sort");
hint(spans, "w", "wrap [" + (wordWrap ? "on" : "off") + "]");
}