[CAMEL-10233] Lazy load ModelJAXBContextFactory in SpringCamelContext
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/dfd46499 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/dfd46499 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/dfd46499 Branch: refs/heads/camel-2.17.x Commit: dfd46499623b69335fdef1ab95d57408071b9c0c Parents: f01c5eb Author: James Netherton <jamesnether...@gmail.com> Authored: Wed Aug 10 17:23:12 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Aug 11 10:42:06 2016 +0200 ---------------------------------------------------------------------- .../main/java/org/apache/camel/impl/DefaultCamelContext.java | 6 +++++- .../main/java/org/apache/camel/spring/SpringCamelContext.java | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/dfd46499/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java index 871ed4a..80d7164 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java @@ -3823,7 +3823,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon public ModelJAXBContextFactory getModelJAXBContextFactory() { if (modelJAXBContextFactory == null) { - modelJAXBContextFactory = new DefaultModelJAXBContextFactory(); + modelJAXBContextFactory = createModelJAXBContextFactory(); } return modelJAXBContextFactory; } @@ -4139,6 +4139,10 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon } } + protected ModelJAXBContextFactory createModelJAXBContextFactory() { + return new DefaultModelJAXBContextFactory(); + } + @Override public String toString() { return "CamelContext(" + getName() + ")"; http://git-wip-us.apache.org/repos/asf/camel/blob/dfd46499/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java ---------------------------------------------------------------------- diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java b/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java index 62b988f..1d160fd 100644 --- a/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java +++ b/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java @@ -24,6 +24,7 @@ import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.impl.ProcessorEndpoint; import org.apache.camel.spi.Injector; import org.apache.camel.spi.ManagementMBeanAssembler; +import org.apache.camel.spi.ModelJAXBContextFactory; import org.apache.camel.spi.Registry; import org.apache.camel.spring.spi.ApplicationContextRegistry; import org.apache.camel.spring.spi.SpringInjector; @@ -68,7 +69,6 @@ public class SpringCamelContext extends DefaultCamelContext implements Initializ public SpringCamelContext(ApplicationContext applicationContext) { setApplicationContext(applicationContext); - setModelJAXBContextFactory(new SpringModelJAXBContextFactory()); } public static void setNoStart(boolean b) { @@ -261,6 +261,11 @@ public class SpringCamelContext extends DefaultCamelContext implements Initializ return new ApplicationContextRegistry(getApplicationContext()); } + @Override + protected ModelJAXBContextFactory createModelJAXBContextFactory() { + return new SpringModelJAXBContextFactory(); + } + private void maybeStart() throws Exception { // for example from unit testing we want to start Camel later and not when Spring framework // publish a ContextRefreshedEvent