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 <[email protected]> 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");
