You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/11/28 11:43:52 UTC
(camel) 05/10: CAMEL-20153: camel-jbang - Transform message command
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch tm3
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 148a67ec6f0ca61e0407ce629fa52757df2d4493
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Nov 28 09:34:55 2023 +0100
CAMEL-20153: camel-jbang - Transform message command
---
.../camel/cli/connector/LocalCliConnector.java | 16 +++++++++++--
.../apache/camel/cli/connector/LoggerHelper.java | 27 ++++++++++++++++++++++
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index 23437a49d8a..05fd8cfe7f5 100644
--- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -303,6 +303,12 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
Exchange out = camelContext.getCamelContextExtension().getExchangeFactory().create(false);
try {
if (source != null) {
+ LOG.warn("Source: {}", source);
+
+ Integer line = LoggerHelper.extractSourceLocationLineNumber(source);
+ source = LoggerHelper.stripSourceLocationLineNumber(source);
+ LOG.warn("Source: {} line: {}", source, line);
+
boolean update = true;
File f = new File(source);
if (f.isFile() && f.exists()) {
@@ -330,7 +336,6 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
LOG.info("Updated routes: {}", ids);
- // TODO: find line location that matches, or use last expression
Model mcc = camelContext.getCamelContextExtension().getContextPlugin(Model.class);
ExpressionDefinition found = null;
for (String id : ids) {
@@ -340,7 +345,14 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
ProcessorDefinition.class);
for (ProcessorDefinition p : defs) {
if (p instanceof HasExpressionType et) {
- found = et.getExpressionType();
+ if (line == null) {
+ found = et.getExpressionType();
+ } else {
+ LOG.warn("Candidate at line {} target line: {}", p.getLineNumber(), line);
+ if (p.getLineNumber() == -1 || p.getLineNumber() <= line) {
+ found = et.getExpressionType();
+ }
+ }
}
}
}
diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LoggerHelper.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LoggerHelper.java
index 82e899238e3..05c6a6fd6ef 100644
--- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LoggerHelper.java
+++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LoggerHelper.java
@@ -23,6 +23,8 @@ import javax.management.Attribute;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import org.apache.camel.util.StringHelper;
+
/**
* Helper for logger action.
*
@@ -70,4 +72,29 @@ public final class LoggerHelper {
}
}
+ public static String stripSourceLocationLineNumber(String location) {
+ int cnt = StringHelper.countChar(location, ':');
+ if (cnt >= 1) {
+ int pos = location.lastIndexOf(':');
+ return location.substring(0, pos);
+ } else {
+ return location;
+ }
+ }
+
+ public static Integer extractSourceLocationLineNumber(String location) {
+ int cnt = StringHelper.countChar(location, ':');
+ if (cnt >= 1) {
+ int pos = location.lastIndexOf(':');
+ String num = location.substring(pos + 1);
+ try {
+ return Integer.valueOf(num);
+ } catch (Exception var5) {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+
}