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 2022/04/15 09:27:35 UTC
[camel] branch main updated (94207abc9dd -> 98ba9b9601b)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
from 94207abc9dd Regen for commit 8c33a3e5e1053ae9e11202513c79bd10ac84c367
new 9d0d62f8785 camel-core - Better loc:line for other DSLs
new 98ba9b9601b camel-core - Better loc:line for other DSLs
The 2 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:
.../apache/camel/impl/engine/DefaultTracer.java | 1 +
.../org/apache/camel/builder/RouteBuilder.java | 42 ++++++++++++++++++++++
.../apache/camel/model/ProcessorDefinition.java | 5 ++-
.../camel/model/ProcessorDefinitionHelper.java | 20 +++++++++--
.../org/apache/camel/model/RouteDefinition.java | 2 +-
.../org/apache/camel/model/RoutesDefinition.java | 3 ++
.../org/apache/camel/support/LoggerHelper.java | 6 ++--
7 files changed, 72 insertions(+), 7 deletions(-)
[camel] 01/02: camel-core - Better loc:line for other DSLs
Posted by da...@apache.org.
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 9d0d62f8785bf45e4771bcfa20c4ac54737f0fce
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Apr 15 11:24:20 2022 +0200
camel-core - Better loc:line for other DSLs
---
.../apache/camel/impl/engine/DefaultTracer.java | 1 +
.../org/apache/camel/builder/RouteBuilder.java | 42 ++++++++++++++++++++++
.../apache/camel/model/ProcessorDefinition.java | 5 ++-
.../camel/model/ProcessorDefinitionHelper.java | 20 +++++++++--
.../org/apache/camel/model/RouteDefinition.java | 2 +-
.../org/apache/camel/model/RoutesDefinition.java | 3 ++
.../org/apache/camel/support/LoggerHelper.java | 6 ++--
7 files changed, 72 insertions(+), 7 deletions(-)
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java
index 4bedbd93dbe..3401ddb1cab 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTracer.java
@@ -126,6 +126,7 @@ public class DefaultTracer extends ServiceSupport implements CamelContextAware,
// we need to capture original source:line-number
if (original && camelContext.isDebugging()) {
+ // TODO: use in dumpTrace
int line = route.getInput().getLineNumber();
String loc = route.getInput().getLocation();
}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
index 6286ae5da78..622b581e835 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
@@ -313,6 +313,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
*/
public RouteDefinition from(String uri) {
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
RouteDefinition answer = getRouteCollection().from(uri);
configureRoute(answer);
return answer;
@@ -327,6 +330,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
*/
public RouteDefinition fromF(String uri, Object... args) {
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
RouteDefinition answer = getRouteCollection().from(String.format(uri, args));
configureRoute(answer);
return answer;
@@ -340,6 +346,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
*/
public RouteDefinition from(Endpoint endpoint) {
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
RouteDefinition answer = getRouteCollection().from(endpoint);
configureRoute(answer);
return answer;
@@ -347,6 +356,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
public RouteDefinition from(EndpointConsumerBuilder endpointDefinition) {
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
RouteDefinition answer = getRouteCollection().from(endpointDefinition);
configureRoute(answer);
return answer;
@@ -362,6 +374,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("errorHandler must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
setErrorHandlerFactory(errorHandlerFactory);
}
@@ -375,6 +390,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("errorHandler must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
setErrorHandlerFactory(new ErrorHandlerRefDefinition(ref));
}
@@ -422,6 +440,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("intercept must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
return getRouteCollection().intercept();
}
@@ -435,6 +456,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("interceptFrom must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
return getRouteCollection().interceptFrom();
}
@@ -449,6 +473,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("interceptFrom must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
return getRouteCollection().interceptFrom(uri);
}
@@ -463,6 +490,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("interceptSendToEndpoint must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
return getRouteCollection().interceptSendToEndpoint(uri);
}
@@ -479,6 +509,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("onException must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
return getRouteCollection().onException(exception);
}
@@ -509,6 +542,9 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
throw new IllegalArgumentException("onCompletion must be defined before any routes in the RouteBuilder");
}
getRouteCollection().setCamelContext(getContext());
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
return getRouteCollection().onCompletion();
}
@@ -676,12 +712,18 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
protected void populateRoutes() throws Exception {
CamelContext camelContext = notNullCamelContext();
getRouteCollection().setCamelContext(camelContext);
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
camelContext.getExtension(Model.class).addRouteDefinitions(getRouteCollection().getRoutes());
}
protected void populateOrUpdateRoutes() throws Exception {
CamelContext camelContext = notNullCamelContext();
getRouteCollection().setCamelContext(camelContext);
+ if (resource != null) {
+ getRouteCollection().setResource(resource);
+ }
// must stop and remove existing running routes
for (RouteDefinition route : getRouteCollection().getRoutes()) {
camelContext.getRouteController().stopRoute(route.getRouteId());
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index b3802477243..af065fcbae0 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -66,6 +66,8 @@ import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.IdempotentRepository;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.Policy;
+import org.apache.camel.spi.Resource;
+import org.apache.camel.spi.ResourceAware;
import org.apache.camel.support.ExpressionAdapter;
import org.slf4j.Logger;
@@ -177,7 +179,8 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
}
if (context != null && (context.isSourceLocationEnabled() || context.isDebugging() || context.isTracing())) {
// we want to capture source location:line for every output
- ProcessorDefinitionHelper.prepareSourceLocation(output);
+ Resource resource = this instanceof ResourceAware ? ((ResourceAware) this).getResource() : null;
+ ProcessorDefinitionHelper.prepareSourceLocation(resource, output);
}
// inject context
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 2551451a47f..41fb8234338 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -23,6 +23,8 @@ import java.util.List;
import java.util.Set;
import org.apache.camel.NamedNode;
+import org.apache.camel.spi.Resource;
+import org.apache.camel.util.FileUtil;
/**
* Helper class for ProcessorDefinition and the other model classes.
@@ -376,7 +378,17 @@ public final class ProcessorDefinitionHelper {
*
* @param node the node
*/
- public static void prepareSourceLocation(NamedNode node) {
+ public static void prepareSourceLocation(Resource resource, NamedNode node) {
+ if (resource != null) {
+ node.setLocation(resource.getLocation());
+
+ String ext = FileUtil.onlyExt(resource.getLocation(), true);
+ if ("groovy".equals(ext)) {
+ // we cannot get line number for groovy scripts
+ return;
+ }
+ }
+
// line number may already be set if parsed via XML, YAML etc.
int number = node.getLineNumber();
if (number < 0) {
@@ -385,11 +397,13 @@ public final class ProcessorDefinitionHelper {
for (int i = 1; i < st.length; i++) {
StackTraceElement e = st[i];
if (!e.getClassName().startsWith("org.apache.camel.model") &&
- !e.getClassName().startsWith("org.apache.camel.builder.RouteBuilder")) {
+ !e.getClassName().startsWith("org.apache.camel.builder.RouteBuilder") &&
+ !e.getClassName().startsWith("org.apache.camel.dsl")) {
// when we are no longer in model/RouteBuilder, we have found the location:line-number
node.setLineNumber(e.getLineNumber());
if (node.getLocation() == null) {
- node.setLocation(e.getClassName());
+ String name = e.getClassName();
+ node.setLocation(name);
}
return;
}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
index 3b1c3326e4c..9bf93e5ac9d 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinition.java
@@ -765,7 +765,7 @@ public class RouteDefinition extends OutputDefinition<RouteDefinition>
if (getCamelContext() != null && (getCamelContext().isSourceLocationEnabled() || getCamelContext().isDebugging()
|| getCamelContext().isTracing())) {
// we want to capture source location:line for every output
- ProcessorDefinitionHelper.prepareSourceLocation(input);
+ ProcessorDefinitionHelper.prepareSourceLocation(getResource(), input);
}
}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
index 7c582c65bfb..d1dd9ec93eb 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
@@ -395,6 +395,9 @@ public class RoutesDefinition extends OptionalIdentifiedDefinition<RoutesDefinit
if (handler != null) {
route.setErrorHandlerFactoryIfNull(handler);
}
+ if (resource != null) {
+ route.setResource(resource);
+ }
return route;
}
}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java
index 7d378835691..f475e300f1f 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/LoggerHelper.java
@@ -44,7 +44,7 @@ public final class LoggerHelper {
}
String loc = ((LineNumberAware) node).getLocation();
int line = ((LineNumberAware) node).getLineNumber();
- if (line != -1 && loc != null) {
+ if (loc != null) {
// is it a class or file?
name = loc;
if (loc.contains(":")) {
@@ -59,7 +59,9 @@ public final class LoggerHelper {
name = name.substring(pos + 1);
}
}
- name += ":" + line;
+ if (line != -1) {
+ name += ":" + line;
+ }
}
}
return name;
[camel] 02/02: camel-core - Better loc:line for other DSLs
Posted by da...@apache.org.
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 98ba9b9601b76890f6be4c4a23d253729b14df34
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Apr 15 11:27:26 2022 +0200
camel-core - Better loc:line for other DSLs
---
.../main/java/org/apache/camel/model/ProcessorDefinitionHelper.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 41fb8234338..41289f41874 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -383,8 +383,8 @@ public final class ProcessorDefinitionHelper {
node.setLocation(resource.getLocation());
String ext = FileUtil.onlyExt(resource.getLocation(), true);
- if ("groovy".equals(ext)) {
- // we cannot get line number for groovy scripts
+ if ("groovy".equals(ext) || "js".equals(ext)) {
+ // we cannot get line number for groovy/javascript scripts
return;
}
}