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 2018/07/13 07:17:31 UTC
[camel] 01/02: CAMEL-12639: camel-route-parser should obtain line
number from class content instead of reading from file,
in-case you parse a class that has not been saved to file etc.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6526b6263d94f9b3adeaeac75151f58b5e91883a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Jul 13 09:07:44 2018 +0200
CAMEL-12639: camel-route-parser should obtain line number from class content instead of reading from file, in-case you parse a class that has not been saved to file etc.
---
.../java/org/apache/camel/parser/RouteBuilderParser.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
index 703d54e..d56fe8f 100644
--- a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
+++ b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
@@ -19,6 +19,7 @@ package org.apache.camel.parser;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -161,7 +162,7 @@ public final class RouteBuilderParser {
// find position of field/expression
if (internal instanceof ASTNode) {
int pos = ((ASTNode) internal).getStartPosition();
- int line = findLineNumber(fullyQualifiedFileName, pos);
+ int line = findLineNumber(clazz.toUnformattedString(), pos);
if (line > -1) {
detail.setLineNumber("" + line);
}
@@ -212,7 +213,7 @@ public final class RouteBuilderParser {
detail.setMethodName(configureMethod.getName());
detail.setEndpointInstance(null);
detail.setEndpointUri(result.getElement());
- int line = findLineNumber(fullyQualifiedFileName, result.getPosition());
+ int line = findLineNumber(clazz.toUnformattedString(), result.getPosition());
if (line > -1) {
detail.setLineNumber("" + line);
}
@@ -255,7 +256,7 @@ public final class RouteBuilderParser {
detail.setMethodName(configureMethod.getName());
detail.setEndpointInstance(null);
detail.setEndpointUri(result.getElement());
- int line = findLineNumber(fullyQualifiedFileName, result.getPosition());
+ int line = findLineNumber(clazz.toUnformattedString(), result.getPosition());
if (line > -1) {
detail.setLineNumber("" + line);
}
@@ -293,7 +294,7 @@ public final class RouteBuilderParser {
detail.setFileName(fileName);
detail.setClassName(clazz.getQualifiedName());
detail.setMethodName("configure");
- int line = findLineNumber(fullyQualifiedFileName, result.getPosition());
+ int line = findLineNumber(clazz.toUnformattedString(), result.getPosition());
if (line > -1) {
detail.setLineNumber("" + line);
}
@@ -336,7 +337,7 @@ public final class RouteBuilderParser {
detail.setFileName(fileName);
detail.setClassName(clazz.getQualifiedName());
detail.setMethodName("configure");
- int line = findLineNumber(fullyQualifiedFileName, result.getPosition());
+ int line = findLineNumber(clazz.toUnformattedString(), result.getPosition());
if (line > -1) {
detail.setLineNumber("" + line);
}
@@ -357,12 +358,12 @@ public final class RouteBuilderParser {
return null;
}
- private static int findLineNumber(String fullyQualifiedFileName, int position) {
+ private static int findLineNumber(String content, int position) {
int lines = 0;
try {
int current = 0;
- try (BufferedReader br = new BufferedReader(new FileReader(new File(fullyQualifiedFileName)))) {
+ try (BufferedReader br = new BufferedReader(new StringReader(content))) {
String line;
while ((line = br.readLine()) != null) {
lines++;