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 997f777c903667ea5ee82ea9087ae441e8637f53 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Jan 30 09:48:08 2020 +0100 CAMEL-14354: camel-core optimize --- .../camel/impl/engine/AbstractCamelContext.java | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index 8bb39dd..b4853da 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -3297,6 +3297,8 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext * components and create routes */ protected void forceLazyInitialization() { + initEagerMandatoryServices(); + if (initialization != Initialization.Lazy) { doStartStandardServices(); @@ -3306,6 +3308,22 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext } } + /** + * Initializes eager some mandatory services which needs to warmup and + * be ready as this helps optimize Camel at runtime. + */ + protected void initEagerMandatoryServices() { + if (headersMapFactory == null) { + // we want headers map to be created as then JVM can optimize using it as we use it per exchange/message + synchronized (lock) { + if (headersMapFactory == null) { + setHeadersMapFactory(createHeadersMapFactory()); + } + } + } + } + + protected void doStartStandardServices() { getVersion(); getTypeConverter(); @@ -4081,13 +4099,6 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext @Override public HeadersMapFactory getHeadersMapFactory() { - if (headersMapFactory == null) { - synchronized (lock) { - if (headersMapFactory == null) { - setHeadersMapFactory(createHeadersMapFactory()); - } - } - } return headersMapFactory; }