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 2020/10/15 04:52:03 UTC
[camel] 01/02: camel-core - Some small optimizations
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 9f4942a6b291099a7cb28e8a98d002e63b934590
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Oct 14 15:27:59 2020 +0200
camel-core - Some small optimizations
---
.../org/apache/camel/impl/engine/SubscribeMethodProcessor.java | 9 ++++++++-
.../java/org/apache/camel/processor/ClaimCheckProcessor.java | 8 +++++---
.../org/apache/camel/processor/ThrowExceptionProcessor.java | 7 ++++++-
.../org/apache/camel/processor/interceptor/BacklogTracer.java | 10 +++++++---
.../support/language/DefaultAnnotationExpressionFactory.java | 3 ---
5 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java
index a76d3fe..c8d8492 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java
@@ -31,6 +31,7 @@ import org.apache.camel.Navigate;
import org.apache.camel.Predicate;
import org.apache.camel.Processor;
import org.apache.camel.processor.CamelInternalProcessor;
+import org.apache.camel.spi.Language;
import org.apache.camel.support.AsyncProcessorSupport;
import org.apache.camel.support.builder.PredicateBuilder;
import org.apache.camel.support.service.ServiceHelper;
@@ -44,6 +45,7 @@ public final class SubscribeMethodProcessor extends AsyncProcessorSupport implem
private final Endpoint endpoint;
private final Map<AsyncProcessor, Predicate> methods = new LinkedHashMap<>();
+ private Language simple;
public SubscribeMethodProcessor(Endpoint endpoint) {
this.endpoint = endpoint;
@@ -64,7 +66,7 @@ public final class SubscribeMethodProcessor extends AsyncProcessorSupport implem
if (ObjectHelper.isEmpty(predicate)) {
p = PredicateBuilder.constant(true);
} else {
- p = endpoint.getCamelContext().resolveLanguage("simple").createPredicate(predicate);
+ p = simple.createPredicate(predicate);
}
methods.put(internal, p);
}
@@ -87,6 +89,11 @@ public final class SubscribeMethodProcessor extends AsyncProcessorSupport implem
}
@Override
+ protected void doInit() throws Exception {
+ simple = getEndpoint().getCamelContext().resolveLanguage("simple");
+ }
+
+ @Override
protected void doStart() throws Exception {
ServiceHelper.startService(methods.keySet());
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java b/core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
index 1e3879c..494d6a9 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
+++ b/core/camel-base/src/main/java/org/apache/camel/processor/ClaimCheckProcessor.java
@@ -184,9 +184,7 @@ public class ClaimCheckProcessor extends AsyncProcessorSupport implements IdAwar
}
@Override
- protected void doStart() throws Exception {
- ObjectHelper.notNull(operation, "operation", this);
-
+ protected void doInit() throws Exception {
if (aggregationStrategy == null) {
aggregationStrategy = createAggregationStrategy();
}
@@ -199,7 +197,11 @@ public class ClaimCheckProcessor extends AsyncProcessorSupport implements IdAwar
} else {
keyExpression = camelContext.resolveLanguage("constant").createExpression(key);
}
+ }
+ @Override
+ protected void doStart() throws Exception {
+ ObjectHelper.notNull(operation, "operation", this);
ServiceHelper.startService(aggregationStrategy);
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java b/core/camel-base/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
index d8fa6a9..2a0bbe8 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
+++ b/core/camel-base/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
@@ -136,7 +136,7 @@ public class ThrowExceptionProcessor extends AsyncProcessorSupport
}
@Override
- protected void doStart() throws Exception {
+ protected void doInit() throws Exception {
ObjectHelper.notNull(camelContext, "camelContext", this);
if (message != null) {
@@ -145,6 +145,11 @@ public class ThrowExceptionProcessor extends AsyncProcessorSupport
}
@Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
protected void doStop() throws Exception {
// noop
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index 7059b1e..6c1c6f5 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/core/camel-base/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -28,6 +28,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.NamedNode;
import org.apache.camel.Predicate;
import org.apache.camel.api.management.mbean.BacklogTracerEventMessage;
+import org.apache.camel.spi.Language;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.PatternHelper;
import org.apache.camel.support.service.ServiceSupport;
@@ -44,6 +45,7 @@ public final class BacklogTracer extends ServiceSupport {
// lets limit the tracer to 10 thousand messages in total
public static final int MAX_BACKLOG_SIZE = 10 * 1000;
private final CamelContext camelContext;
+ private final Language simple;
private boolean enabled;
private final AtomicLong traceCounter = new AtomicLong();
// use a queue with a upper limit to avoid storing too many messages
@@ -62,6 +64,7 @@ public final class BacklogTracer extends ServiceSupport {
private BacklogTracer(CamelContext camelContext) {
this.camelContext = camelContext;
+ this.simple = camelContext.resolveLanguage("simple");
}
/**
@@ -216,11 +219,12 @@ public final class BacklogTracer extends ServiceSupport {
if (filter != null) {
// assume simple language
String name = StringHelper.before(filter, ":");
- if (name == null) {
+ if (name != null) {
+ predicate = camelContext.resolveLanguage(name).createPredicate(filter);
+ } else {
// use simple language by default
- name = "simple";
+ predicate = simple.createPredicate(filter);
}
- predicate = camelContext.resolveLanguage(name).createPredicate(filter);
}
}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/language/DefaultAnnotationExpressionFactory.java b/core/camel-support/src/main/java/org/apache/camel/support/language/DefaultAnnotationExpressionFactory.java
index 4aec640..e0e9a1a 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/language/DefaultAnnotationExpressionFactory.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/language/DefaultAnnotationExpressionFactory.java
@@ -36,9 +36,6 @@ public class DefaultAnnotationExpressionFactory implements AnnotationExpressionF
CamelContext camelContext, Annotation annotation, LanguageAnnotation languageAnnotation,
Class<?> expressionReturnType) {
String languageName = languageAnnotation.language();
- if (languageName == null) {
- throw new IllegalArgumentException("Cannot determine the language from the annotation: " + annotation);
- }
Language language = camelContext.resolveLanguage(languageName);
if (language == null) {
throw new IllegalArgumentException("Cannot find the language: " + languageName + " on the classpath");