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 2021/12/14 13:25:24 UTC

[camel] 03/07: CAMEL-17331: include sourceLineNumber in xml dump if possible

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

commit 283ac91f4925457e4d252dd02408d8561d37419d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Dec 14 13:43:05 2021 +0100

    CAMEL-17331: include sourceLineNumber in xml dump if possible
---
 .../apache/camel/api/management/mbean/ManagedProcessorMBean.java    | 3 +++
 .../java/org/apache/camel/management/mbean/ManagedProcessor.java    | 6 ++++++
 .../main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java   | 4 ++++
 3 files changed, 13 insertions(+)

diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java
index 037ef98..f5016a0 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java
+++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java
@@ -42,6 +42,9 @@ public interface ManagedProcessorMBean extends ManagedPerformanceCounterMBean {
     @ManagedAttribute(description = "Processor Index")
     Integer getIndex();
 
+    @ManagedAttribute(description = "Line number of this node in the source file (when loaded from a line number aware parser)")
+    Integer getSourceLineNumber();
+
     @ManagedAttribute(description = "Whether this processor supports extended JMX information")
     Boolean getSupportExtendedInformation();
 
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
index c9efc82..59359b9 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
@@ -95,6 +95,12 @@ public class ManagedProcessor extends ManagedPerformanceCounter implements Manag
     }
 
     @Override
+    public Integer getSourceLineNumber() {
+        int line = definition.getLineNumber();
+        return line >= 0 ? line : null;
+    }
+
+    @Override
     public Boolean getSupportExtendedInformation() {
         return false;
     }
diff --git a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java
index 21b650d..ed813cd 100644
--- a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java
+++ b/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbModelToXMLDumper.java
@@ -116,6 +116,10 @@ public class JaxbModelToXMLDumper implements ModelToXMLDumper {
             String prefix = nsPrefix.equals("xmlns") ? nsPrefix : "xmlns:" + nsPrefix;
             documentElement.setAttribute(prefix, entry.getValue());
         }
+        // enrich line number
+        if (definition.getLineNumber() >= 0) {
+            documentElement.setAttribute("sourceLineNumber", "" + definition.getLineNumber());
+        }
 
         // We invoke the type converter directly because we need to pass some
         // custom XML output options