This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.x by this push: new 9ef187008d1 CAMEL-19359: camel-spring - Graceful shutdown in Spring Boot better s… (#10184) 9ef187008d1 is described below commit 9ef187008d141eed7febd08b3f73131df6476a47 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue May 23 06:24:01 2023 +0200 CAMEL-19359: camel-spring - Graceful shutdown in Spring Boot better s… (#10184) * CAMEL-19359: camel-spring - Graceful shutdown in Spring Boot better supported. Changed the shutdown phase in SpringCamelContext to be a bit later. --- .../main/java/org/apache/camel/spring/SpringCamelContext.java | 6 +++++- .../modules/ROOT/pages/camel-3x-upgrade-guide-3_21.adoc | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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 be794664550..16e90b994d2 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 @@ -292,7 +292,11 @@ public class SpringCamelContext extends DefaultCamelContext // (explained in comment in the onApplicationEvent method) // we use LOWEST_PRECEDENCE here as this is taken into account // only when stopping and then in reversed order - return LOWEST_PRECEDENCE; + return Integer.MAX_VALUE - 2049; + // we need to be less than max value as spring-boot comes with + // graceful shutdown services (the http server in spring boot) + // that must shutdown before camel, and they have max value - 2048, + // so we use 2049 to have a higher gap } @Override diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_21.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_21.adoc index fee1b06b194..5aa10563ed5 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_21.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_21.adoc @@ -104,6 +104,15 @@ For example as shown below for the context health check: } ---- +=== Graceful Shutdown + +Camel now shutdowns a bit later during Spring Boot shutdown. This allows Spring Boot graceful shutdown +to complete first (stopping Spring Boot HTTP server gracefully), +and then afterward Camel is doing its own xref:graceful-shutdown.adoc[]. + +Technically `camel-spring` has changed `getPhase()` from returning `Integer.MAX_VALUE` to +`Integer.MAX_VALUE - 2049`. This gives room for Spring Boot services to shut down first. + === camel-java-joor-dsl The `camel-java-joor-dsl` cannot anymore load routes defined in class files as we consider it no more needed, consequently the ability to configure the compile directory and the compile load first flag using the corresponding `camel-main` properties is no longer possible.