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