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:02 UTC
[camel] branch master updated (26f43d8 -> eeabe64)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.
from 26f43d8 Proofread README file with multiple fixes
new 9f4942a camel-core - Some small optimizations
new eeabe64 CAMEL-15176: Optimize component to do as much in init phase vs start phase.
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:
.../camel/component/language/LanguageEndpoint.java | 17 ++++++++++++-----
components/components-init-work-in-progress.md | 2 +-
.../camel/impl/engine/SubscribeMethodProcessor.java | 9 ++++++++-
.../org/apache/camel/processor/ClaimCheckProcessor.java | 8 +++++---
.../apache/camel/processor/ThrowExceptionProcessor.java | 7 ++++++-
.../camel/processor/interceptor/BacklogTracer.java | 10 +++++++---
.../language/DefaultAnnotationExpressionFactory.java | 3 ---
7 files changed, 39 insertions(+), 17 deletions(-)
[camel] 01/02: camel-core - Some small optimizations
Posted by da...@apache.org.
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");
[camel] 02/02: CAMEL-15176: Optimize component to do as much in
init phase vs start phase.
Posted by da...@apache.org.
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 eeabe64a809a64e723685bda90712951f25a906d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Oct 14 16:59:14 2020 +0200
CAMEL-15176: Optimize component to do as much in init phase vs start phase.
---
.../camel/component/language/LanguageEndpoint.java | 17 ++++++++++++-----
components/components-init-work-in-progress.md | 2 +-
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
index e4f7e7d..0cab7b8 100644
--- a/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
+++ b/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
@@ -38,7 +38,6 @@ import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.support.ResourceHelper;
import org.apache.camel.util.IOHelper;
-import org.apache.camel.util.ObjectHelper;
/**
* Execute scripts in any of the languages supported by Camel.
@@ -87,14 +86,22 @@ public class LanguageEndpoint extends ResourceEndpoint {
}
@Override
- public Producer createProducer() throws Exception {
- ObjectHelper.notNull(getCamelContext(), "CamelContext", this);
-
+ protected void doInit() throws Exception {
if (language == null && languageName != null) {
language = getCamelContext().resolveLanguage(languageName);
}
+ if (cacheScript && expression == null && script != null) {
+ boolean external = script.startsWith("file:") || script.startsWith("http:");
+ if (!external) {
+ // we can pre optimize this as the script can be loaded from classpath or registry etc
+ script = resolveScript(script);
+ expression = language.createExpression(script);
+ }
+ }
+ }
- ObjectHelper.notNull(language, "language", this);
+ @Override
+ public Producer createProducer() throws Exception {
if (cacheScript && expression == null && script != null) {
script = resolveScript(script);
expression = language.createExpression(script);
diff --git a/components/components-init-work-in-progress.md b/components/components-init-work-in-progress.md
index f4bbb88..40599e6 100644
--- a/components/components-init-work-in-progress.md
+++ b/components/components-init-work-in-progress.md
@@ -222,7 +222,7 @@
|camel-kubernetes|REJECT|OKHttp client create thread pool |
|camel-kudu|REJECT|create thread pool|
|camel-kura| | |
-|camel-language| | |
+|camel-language|DONE | |
|camel-ldap| | |
|camel-ldif| | |
|camel-leveldb| | |