From dc8f5b4993cf57278d65fc879735a33c13c9c0a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B6=E7=8F=A5?= Date: Thu, 23 Jul 2020 10:17:47 +0800 Subject: [PATCH 1/5] break readiness callback invoking when there failure happening --- .../AfterReadinessCheckCallbackProcessor.java | 15 ++++--- ...AfterHealthReadinessCheckCallbackTest.java | 28 +++++++++++- .../HighestOrderReadinessCheckCallback.java | 38 ++++++++++++++++ .../LowestOrderReadinessCheckCallback.java | 45 +++++++++++++++++++ .../bean/MiddlewareHealthCheckCallback.java | 2 +- 5 files changed, 120 insertions(+), 8 deletions(-) create mode 100644 sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/HighestOrderReadinessCheckCallback.java create mode 100644 sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/LowestOrderReadinessCheckCallback.java diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java index a6aa3158d..5cb9f2e75 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java @@ -74,16 +74,21 @@ public boolean afterReadinessCheckCallback(Map healthMap) { logger.info("Begin ReadinessCheckCallback readiness check"); Assert.notNull(readinessCheckCallbacks, "ReadinessCheckCallbacks must not be null."); - boolean result = readinessCheckCallbacks.entrySet().stream() - .map(entry -> doHealthCheckCallback(entry.getKey(), entry.getValue(), healthMap)) - .reduce(true, BinaryOperators.andBoolean()); + boolean allResult = true; + for (Map.Entry entry : readinessCheckCallbacks.entrySet()) { + boolean result = doHealthCheckCallback(entry.getKey(), entry.getValue(), healthMap); + if (!result) { + allResult = false; + break; + } + } - if (result) { + if (allResult) { logger.info("ReadinessCheckCallback readiness check result: success."); } else { logger.error("ReadinessCheckCallback readiness check result: failed."); } - return result; + return allResult; } private boolean doHealthCheckCallback(String beanId, diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java index 53a4354b2..00ac422b9 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java @@ -22,7 +22,11 @@ import com.alipay.sofa.healthcheck.HealthCheckProperties; import com.alipay.sofa.healthcheck.core.HealthChecker; +import com.alipay.sofa.healthcheck.test.bean.ApplicationHealthCheckCallback; import com.alipay.sofa.healthcheck.test.bean.FailedHealthCheck; +import com.alipay.sofa.healthcheck.test.bean.HighestOrderReadinessCheckCallback; +import com.alipay.sofa.healthcheck.test.bean.LowestOrderReadinessCheckCallback; +import com.alipay.sofa.healthcheck.test.bean.MiddlewareHealthCheckCallback; import com.alipay.sofa.healthcheck.test.bean.SuccessHealthCheck; import org.junit.Assert; import org.junit.Test; @@ -40,8 +44,6 @@ import com.alipay.sofa.healthcheck.HealthCheckerProcessor; import com.alipay.sofa.healthcheck.HealthIndicatorProcessor; import com.alipay.sofa.healthcheck.ReadinessCheckListener; -import com.alipay.sofa.healthcheck.test.bean.ApplicationHealthCheckCallback; -import com.alipay.sofa.healthcheck.test.bean.MiddlewareHealthCheckCallback; /** * @author liangen @@ -117,6 +119,14 @@ public void testReadinessCheckSuccessAndCallbackRun() { Assert.assertTrue(applicationHealthCheckCallback.isMark()); } + @Test + public void testBreakingReadinessCheckCallback() { + initApplicationContext(false, false, ReadinessCheckCallbackBreakTestConfiguration.class); + LowestOrderReadinessCheckCallback callback = ctx + .getBean(LowestOrderReadinessCheckCallback.class); + Assert.assertFalse(callback.getMark()); + } + private void initApplicationContext(boolean health, boolean mark, Class clazz) { Map properties = new LinkedHashMap<>(); properties.put("after-readiness-check-callback-a.health", health); @@ -128,6 +138,20 @@ private void initApplicationContext(boolean health, boolean mark, Class clazz) { ctx = springApplication.run(); } + @Configuration + static class ReadinessCheckCallbackBreakTestConfiguration extends + AfterHealthReadinessCheckCallbackTestConfiguration { + @Bean + public HighestOrderReadinessCheckCallback highestOrderReadinessCheckCallback() { + return new HighestOrderReadinessCheckCallback(); + } + + @Bean + public LowestOrderReadinessCheckCallback lowestOrderReadinessCheckCallback() { + return new LowestOrderReadinessCheckCallback(); + } + } + @Configuration @EnableConfigurationProperties(HealthCheckProperties.class) static class AfterHealthReadinessCheckCallbackTestConfiguration { diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/HighestOrderReadinessCheckCallback.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/HighestOrderReadinessCheckCallback.java new file mode 100644 index 000000000..af128670c --- /dev/null +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/HighestOrderReadinessCheckCallback.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alipay.sofa.healthcheck.test.bean; + +import com.alipay.sofa.healthcheck.startup.ReadinessCheckCallback; +import org.springframework.boot.actuate.health.Health; +import org.springframework.context.ApplicationContext; +import org.springframework.core.PriorityOrdered; + +/** + * @author Alaneuler + * Created on 2020/7/23 + */ +public class HighestOrderReadinessCheckCallback implements ReadinessCheckCallback, PriorityOrdered { + @Override + public Health onHealthy(ApplicationContext applicationContext) { + return Health.down().build(); + } + + @Override + public int getOrder() { + return PriorityOrdered.HIGHEST_PRECEDENCE; + } +} diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/LowestOrderReadinessCheckCallback.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/LowestOrderReadinessCheckCallback.java new file mode 100644 index 000000000..81a24c299 --- /dev/null +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/LowestOrderReadinessCheckCallback.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alipay.sofa.healthcheck.test.bean; + +import com.alipay.sofa.healthcheck.startup.ReadinessCheckCallback; +import org.springframework.boot.actuate.health.Health; +import org.springframework.context.ApplicationContext; +import org.springframework.core.PriorityOrdered; + +/** + * @author Alaneuler + * Created on 2020/7/23 + */ +public class LowestOrderReadinessCheckCallback implements ReadinessCheckCallback, PriorityOrdered { + private boolean mark = false; + + public boolean getMark() { + return mark; + } + + @Override + public Health onHealthy(ApplicationContext applicationContext) { + mark = true; + return Health.up().build(); + } + + @Override + public int getOrder() { + return PriorityOrdered.LOWEST_PRECEDENCE; + } +} diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java index 110dad15a..50c7c0244 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java @@ -42,4 +42,4 @@ public Health onHealthy(ApplicationContext applicationContext) { return Health.down().withDetail("server", "server is bad").build(); } } -} \ No newline at end of file +} From 9189586702b289af9d69a041c2c901cdf4d1982c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B6=E7=8F=A5?= Date: Thu, 23 Jul 2020 10:18:42 +0800 Subject: [PATCH 2/5] update version to 3.4.2-SNAPSHOT --- pom.xml | 2 +- sofa-boot-project/pom.xml | 2 +- sofa-boot-project/sofa-boot-actuator-autoconfigure/pom.xml | 2 +- sofa-boot-project/sofa-boot-actuator/pom.xml | 2 +- sofa-boot-project/sofa-boot-autoconfigure/pom.xml | 2 +- .../sofa-boot-core/healthcheck-sofa-boot/pom.xml | 2 +- sofa-boot-project/sofa-boot-core/isle-sofa-boot/pom.xml | 2 +- sofa-boot-project/sofa-boot-core/log-sofa-boot/pom.xml | 2 +- sofa-boot-project/sofa-boot-core/pom.xml | 2 +- sofa-boot-project/sofa-boot-core/rpc-sofa-boot/pom.xml | 2 +- sofa-boot-project/sofa-boot-core/runtime-sofa-boot/pom.xml | 2 +- sofa-boot-project/sofa-boot-core/test-sofa-boot/pom.xml | 2 +- sofa-boot-project/sofa-boot-core/tracer-sofa-boot/pom.xml | 2 +- sofa-boot-project/sofa-boot-parent/pom.xml | 2 +- sofa-boot-project/sofa-boot-plugins/pom.xml | 2 +- .../sofa-boot-plugins/rpc-sofa-boot-plugin/pom.xml | 2 +- .../sofa-boot-plugins/runtime-sofa-boot-plugin/pom.xml | 2 +- .../sofa-boot-plugins/tracer-sofa-boot-plugin/pom.xml | 2 +- .../sofa-boot-starters/healthcheck-sofa-boot-starter/pom.xml | 2 +- .../sofa-boot-starters/infra-sofa-boot-starter/pom.xml | 2 +- .../sofa-boot-starters/isle-sofa-boot-starter/pom.xml | 2 +- .../sofa-boot-starters/log-sofa-boot-starter/pom.xml | 2 +- sofa-boot-project/sofa-boot-starters/pom.xml | 2 +- .../sofa-boot-starters/rpc-sofa-boot-starter/pom.xml | 2 +- .../sofa-boot-starters/runtime-sofa-boot-starter/pom.xml | 2 +- .../sofa-boot-starters/test-sofa-boot-starter/pom.xml | 2 +- .../sofa-boot-starters/tracer-sofa-boot-starter/pom.xml | 2 +- sofa-boot-project/sofa-boot-tools/pom.xml | 2 +- .../sofa-boot-tools/sofa-boot-gradle-plugin/build.gradle | 2 +- .../sofa-boot-tools/sofa-boot-gradle-plugin/pom.xml | 2 +- sofa-boot-project/sofa-boot/pom.xml | 2 +- sofa-boot-project/sofaboot-dependencies/pom.xml | 4 ++-- 32 files changed, 33 insertions(+), 33 deletions(-) diff --git a/pom.xml b/pom.xml index 0473e4a85..4bf2f6ac1 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 4.0.0 com.alipay.sofa sofa-boot-build - 3.4.1 + 3.4.2-SNAPSHOT pom SOFABoot Build SOFABoot Build diff --git a/sofa-boot-project/pom.xml b/sofa-boot-project/pom.xml index d31f5090c..c14b4b4c5 100644 --- a/sofa-boot-project/pom.xml +++ b/sofa-boot-project/pom.xml @@ -5,7 +5,7 @@ sofa-boot-build com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-actuator-autoconfigure/pom.xml b/sofa-boot-project/sofa-boot-actuator-autoconfigure/pom.xml index 8f51a6868..91c1d36a2 100644 --- a/sofa-boot-project/sofa-boot-actuator-autoconfigure/pom.xml +++ b/sofa-boot-project/sofa-boot-actuator-autoconfigure/pom.xml @@ -5,7 +5,7 @@ com.alipay.sofa sofa-boot-parent - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent diff --git a/sofa-boot-project/sofa-boot-actuator/pom.xml b/sofa-boot-project/sofa-boot-actuator/pom.xml index 3cfd6381b..fdd948f4b 100644 --- a/sofa-boot-project/sofa-boot-actuator/pom.xml +++ b/sofa-boot-project/sofa-boot-actuator/pom.xml @@ -5,7 +5,7 @@ com.alipay.sofa sofa-boot-parent - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent 4.0.0 diff --git a/sofa-boot-project/sofa-boot-autoconfigure/pom.xml b/sofa-boot-project/sofa-boot-autoconfigure/pom.xml index 1dd88bac9..984e0995e 100644 --- a/sofa-boot-project/sofa-boot-autoconfigure/pom.xml +++ b/sofa-boot-project/sofa-boot-autoconfigure/pom.xml @@ -5,7 +5,7 @@ com.alipay.sofa sofa-boot-parent - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/pom.xml b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/pom.xml index 1b3de702e..c1f9968ed 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/pom.xml @@ -5,7 +5,7 @@ sofa-boot-core com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-core/isle-sofa-boot/pom.xml b/sofa-boot-project/sofa-boot-core/isle-sofa-boot/pom.xml index 08ec035d4..b6ace4999 100644 --- a/sofa-boot-project/sofa-boot-core/isle-sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot-core/isle-sofa-boot/pom.xml @@ -5,7 +5,7 @@ sofa-boot-core com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-core/log-sofa-boot/pom.xml b/sofa-boot-project/sofa-boot-core/log-sofa-boot/pom.xml index 216f4fb4a..6e716bf1c 100644 --- a/sofa-boot-project/sofa-boot-core/log-sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot-core/log-sofa-boot/pom.xml @@ -5,7 +5,7 @@ sofa-boot-core com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-core/pom.xml b/sofa-boot-project/sofa-boot-core/pom.xml index 7999da547..72403810a 100644 --- a/sofa-boot-project/sofa-boot-core/pom.xml +++ b/sofa-boot-project/sofa-boot-core/pom.xml @@ -5,7 +5,7 @@ com.alipay.sofa sofa-boot-parent - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent diff --git a/sofa-boot-project/sofa-boot-core/rpc-sofa-boot/pom.xml b/sofa-boot-project/sofa-boot-core/rpc-sofa-boot/pom.xml index eb88112bb..df87bcfe3 100644 --- a/sofa-boot-project/sofa-boot-core/rpc-sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot-core/rpc-sofa-boot/pom.xml @@ -5,7 +5,7 @@ sofa-boot-core com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/pom.xml b/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/pom.xml index f66749835..aa69b80a8 100644 --- a/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot-core/runtime-sofa-boot/pom.xml @@ -5,7 +5,7 @@ sofa-boot-core com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-core/test-sofa-boot/pom.xml b/sofa-boot-project/sofa-boot-core/test-sofa-boot/pom.xml index 207f19c06..d448fb6a1 100644 --- a/sofa-boot-project/sofa-boot-core/test-sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot-core/test-sofa-boot/pom.xml @@ -5,7 +5,7 @@ sofa-boot-core com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-core/tracer-sofa-boot/pom.xml b/sofa-boot-project/sofa-boot-core/tracer-sofa-boot/pom.xml index a9abb1f3c..62cc2873e 100644 --- a/sofa-boot-project/sofa-boot-core/tracer-sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot-core/tracer-sofa-boot/pom.xml @@ -5,7 +5,7 @@ sofa-boot-core com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-parent/pom.xml b/sofa-boot-project/sofa-boot-parent/pom.xml index 353e65ebf..176be52c2 100644 --- a/sofa-boot-project/sofa-boot-parent/pom.xml +++ b/sofa-boot-project/sofa-boot-parent/pom.xml @@ -5,7 +5,7 @@ sofaboot-dependencies com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT ../sofaboot-dependencies 4.0.0 diff --git a/sofa-boot-project/sofa-boot-plugins/pom.xml b/sofa-boot-project/sofa-boot-plugins/pom.xml index 7828c62c9..b176a5b1d 100644 --- a/sofa-boot-project/sofa-boot-plugins/pom.xml +++ b/sofa-boot-project/sofa-boot-plugins/pom.xml @@ -5,7 +5,7 @@ sofa-boot-parent com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent 4.0.0 diff --git a/sofa-boot-project/sofa-boot-plugins/rpc-sofa-boot-plugin/pom.xml b/sofa-boot-project/sofa-boot-plugins/rpc-sofa-boot-plugin/pom.xml index 3a6d06d90..e672a24eb 100644 --- a/sofa-boot-project/sofa-boot-plugins/rpc-sofa-boot-plugin/pom.xml +++ b/sofa-boot-project/sofa-boot-plugins/rpc-sofa-boot-plugin/pom.xml @@ -5,7 +5,7 @@ sofa-boot-plugins com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-plugins/runtime-sofa-boot-plugin/pom.xml b/sofa-boot-project/sofa-boot-plugins/runtime-sofa-boot-plugin/pom.xml index 52fd1264d..c08f94ae6 100644 --- a/sofa-boot-project/sofa-boot-plugins/runtime-sofa-boot-plugin/pom.xml +++ b/sofa-boot-project/sofa-boot-plugins/runtime-sofa-boot-plugin/pom.xml @@ -22,7 +22,7 @@ com.alipay.sofa sofa-boot-plugins - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-plugins/tracer-sofa-boot-plugin/pom.xml b/sofa-boot-project/sofa-boot-plugins/tracer-sofa-boot-plugin/pom.xml index eb6d454ef..790c82986 100644 --- a/sofa-boot-project/sofa-boot-plugins/tracer-sofa-boot-plugin/pom.xml +++ b/sofa-boot-project/sofa-boot-plugins/tracer-sofa-boot-plugin/pom.xml @@ -5,7 +5,7 @@ sofa-boot-plugins com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/healthcheck-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/healthcheck-sofa-boot-starter/pom.xml index 877e114f1..3010b534f 100644 --- a/sofa-boot-project/sofa-boot-starters/healthcheck-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/healthcheck-sofa-boot-starter/pom.xml @@ -22,7 +22,7 @@ com.alipay.sofa sofa-boot-starters - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/infra-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/infra-sofa-boot-starter/pom.xml index 56bc1f97b..686d76481 100644 --- a/sofa-boot-project/sofa-boot-starters/infra-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/infra-sofa-boot-starter/pom.xml @@ -22,7 +22,7 @@ com.alipay.sofa sofa-boot-starters - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/isle-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/isle-sofa-boot-starter/pom.xml index 139331e20..d793b800d 100644 --- a/sofa-boot-project/sofa-boot-starters/isle-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/isle-sofa-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.alipay.sofa sofa-boot-starters - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/log-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/log-sofa-boot-starter/pom.xml index 2fb56aa02..d8b38f617 100644 --- a/sofa-boot-project/sofa-boot-starters/log-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/log-sofa-boot-starter/pom.xml @@ -5,7 +5,7 @@ sofa-boot-starters com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/pom.xml b/sofa-boot-project/sofa-boot-starters/pom.xml index cb5974764..6097fb83c 100644 --- a/sofa-boot-project/sofa-boot-starters/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/pom.xml @@ -5,7 +5,7 @@ sofa-boot-parent com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/rpc-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/rpc-sofa-boot-starter/pom.xml index f908ad480..e6e72243a 100644 --- a/sofa-boot-project/sofa-boot-starters/rpc-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/rpc-sofa-boot-starter/pom.xml @@ -5,7 +5,7 @@ sofa-boot-starters com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/runtime-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/runtime-sofa-boot-starter/pom.xml index acbadce83..6a613b1b6 100644 --- a/sofa-boot-project/sofa-boot-starters/runtime-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/runtime-sofa-boot-starter/pom.xml @@ -22,7 +22,7 @@ com.alipay.sofa sofa-boot-starters - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/test-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/test-sofa-boot-starter/pom.xml index 51012f3f6..1a1b4cf62 100644 --- a/sofa-boot-project/sofa-boot-starters/test-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/test-sofa-boot-starter/pom.xml @@ -5,7 +5,7 @@ sofa-boot-starters com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-starters/tracer-sofa-boot-starter/pom.xml b/sofa-boot-project/sofa-boot-starters/tracer-sofa-boot-starter/pom.xml index b0b9ff1c1..ad1dc4a7b 100644 --- a/sofa-boot-project/sofa-boot-starters/tracer-sofa-boot-starter/pom.xml +++ b/sofa-boot-project/sofa-boot-starters/tracer-sofa-boot-starter/pom.xml @@ -5,7 +5,7 @@ sofa-boot-starters com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT 4.0.0 diff --git a/sofa-boot-project/sofa-boot-tools/pom.xml b/sofa-boot-project/sofa-boot-tools/pom.xml index e6032817a..8048f3632 100644 --- a/sofa-boot-project/sofa-boot-tools/pom.xml +++ b/sofa-boot-project/sofa-boot-tools/pom.xml @@ -5,7 +5,7 @@ sofa-boot-parent com.alipay.sofa - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent 4.0.0 diff --git a/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/build.gradle b/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/build.gradle index 17536946c..0d9800b6c 100644 --- a/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/build.gradle +++ b/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/build.gradle @@ -11,7 +11,7 @@ plugins { } group 'com.alipay.sofa' -version '3.4.1' +version '3.4.2-SNAPSHOT' sourceCompatibility = 1.8 diff --git a/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/pom.xml b/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/pom.xml index 9ca108f90..761f061fd 100644 --- a/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/pom.xml +++ b/sofa-boot-project/sofa-boot-tools/sofa-boot-gradle-plugin/pom.xml @@ -5,7 +5,7 @@ com.alipay.sofa sofa-boot-tools - 3.4.1 + 3.4.2-SNAPSHOT sofa-boot-gradle-plugin pom diff --git a/sofa-boot-project/sofa-boot/pom.xml b/sofa-boot-project/sofa-boot/pom.xml index 1ad18b3dc..cbfe8d7f6 100644 --- a/sofa-boot-project/sofa-boot/pom.xml +++ b/sofa-boot-project/sofa-boot/pom.xml @@ -5,7 +5,7 @@ com.alipay.sofa sofa-boot-parent - 3.4.1 + 3.4.2-SNAPSHOT ../sofa-boot-parent 4.0.0 diff --git a/sofa-boot-project/sofaboot-dependencies/pom.xml b/sofa-boot-project/sofaboot-dependencies/pom.xml index b62d87247..e82156ed6 100644 --- a/sofa-boot-project/sofaboot-dependencies/pom.xml +++ b/sofa-boot-project/sofaboot-dependencies/pom.xml @@ -13,7 +13,7 @@ com.alipay.sofa sofaboot-dependencies pom - 3.4.1 + 3.4.2-SNAPSHOT @@ -22,7 +22,7 @@ UTF-8 UTF-8 - 3.4.1 + 3.4.2-SNAPSHOT 1.1.1 From 2c84000214deb0270ef29df0838fa84031b44b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B6=E7=8F=A5?= Date: Thu, 23 Jul 2020 10:19:11 +0800 Subject: [PATCH 3/5] remove 3.0 in readme --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 4f2aa942b..4f07074cf 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,6 @@ SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。在增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。 -## 3.0.0 🎉🎉🎉 -SOFABoot 3.0.0 已经发布,该版本基于 Spring Boot 2.0.3.RELEASE 开发,并兼容 Spring Cloud。除此之外,SOFABoot 3.0.0 增加了支持 ReactiveHealthIndicator 健康检查扩展,支持 WebFlux 请求埋点等新功能,欢迎试用新版本。 - ## 一、背景 Spring Boot 是一个非常优秀的开源框架,可以非常方便地就构建出一个基于 Spring 的应用程序,但是在使用过程中,还是会遇到一些问题: From 71fc496eccd5354f0bbd907591f61f54fd8f54f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B6=E7=8F=A5?= Date: Thu, 23 Jul 2020 10:43:10 +0800 Subject: [PATCH 4/5] add more readiness check information --- .../AfterReadinessCheckCallbackProcessor.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java index 5cb9f2e75..011a4f18d 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/main/java/com/alipay/sofa/healthcheck/AfterReadinessCheckCallbackProcessor.java @@ -76,10 +76,13 @@ public boolean afterReadinessCheckCallback(Map healthMap) { boolean allResult = true; for (Map.Entry entry : readinessCheckCallbacks.entrySet()) { - boolean result = doHealthCheckCallback(entry.getKey(), entry.getValue(), healthMap); - if (!result) { - allResult = false; - break; + String beanId = entry.getKey(); + if (allResult) { + if (!doHealthCheckCallback(beanId, entry.getValue(), healthMap)) { + allResult = false; + } + } else { + healthMap.put(beanId, Health.down().withDetail("invoking", "skipped").build()); } } From beff4c1f533523641c9fefabe7a6b2467c9f20e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=B6=E7=8F=A5?= Date: Thu, 23 Jul 2020 10:58:15 +0800 Subject: [PATCH 5/5] fix readiness tests --- ...AfterHealthReadinessCheckCallbackTest.java | 36 ++++++++----------- .../bean/MiddlewareHealthCheckCallback.java | 8 ++++- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java index 00ac422b9..d0ec7dded 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/AfterHealthReadinessCheckCallbackTest.java @@ -66,17 +66,17 @@ public void testAfterReadinessCheckCallbackMarked() { boolean result = afterReadinessCheckCallbackProcessor.afterReadinessCheckCallback(hashMap); Assert.assertTrue(result); Assert.assertTrue(applicationHealthCheckCallback.isMark()); - Assert.assertTrue(hashMap.size() == 2); + Assert.assertEquals(2, hashMap.size()); Health middleHealth = hashMap.get("middlewareHealthCheckCallback"); Health applicationHealth = hashMap.get("applicationHealthCheckCallback"); Assert.assertNotNull(middleHealth); Assert.assertNotNull(applicationHealth); - Assert.assertTrue(middleHealth.getStatus().equals(Status.UP)); - Assert.assertTrue(applicationHealth.getStatus().equals(Status.UP)); - Assert.assertTrue(middleHealth.getDetails().size() == 1); - Assert.assertTrue(applicationHealth.getDetails().size() == 1); - Assert.assertTrue("server is ok".equals(middleHealth.getDetails().get("server"))); - Assert.assertTrue("port is ok".equals(applicationHealth.getDetails().get("port"))); + Assert.assertEquals(middleHealth.getStatus(), Status.UP); + Assert.assertEquals(applicationHealth.getStatus(), Status.UP); + Assert.assertEquals(1, middleHealth.getDetails().size()); + Assert.assertEquals(1, applicationHealth.getDetails().size()); + Assert.assertEquals("server is ok", middleHealth.getDetails().get("server")); + Assert.assertEquals("port is ok", applicationHealth.getDetails().get("port")); } @Test @@ -90,17 +90,17 @@ public void testAfterReadinessCheckCallbackUnMarked() { HashMap hashMap = new HashMap<>(); boolean result = afterReadinessCheckCallbackProcessor.afterReadinessCheckCallback(hashMap); Assert.assertFalse(result); - Assert.assertTrue(applicationHealthCheckCallback.isMark()); - Assert.assertTrue(hashMap.size() == 2); + Assert.assertFalse(applicationHealthCheckCallback.isMark()); + Assert.assertEquals(2, hashMap.size()); Health middleHealth = hashMap.get("middlewareHealthCheckCallback"); Health applicationHealth = hashMap.get("applicationHealthCheckCallback"); Assert.assertNotNull(middleHealth); Assert.assertNotNull(applicationHealth); - Assert.assertTrue(middleHealth.getStatus().equals(Status.DOWN)); - Assert.assertTrue(applicationHealth.getStatus().equals(Status.UP)); - Assert.assertTrue(middleHealth.getDetails().size() == 1); - Assert.assertTrue("server is bad".equals(middleHealth.getDetails().get("server"))); - Assert.assertTrue("port is ok".equals(applicationHealth.getDetails().get("port"))); + Assert.assertEquals(middleHealth.getStatus(), Status.DOWN); + Assert.assertEquals(applicationHealth.getStatus(), Status.DOWN); + Assert.assertEquals(1, middleHealth.getDetails().size()); + Assert.assertEquals("server is bad", middleHealth.getDetails().get("server")); + Assert.assertEquals("skipped", applicationHealth.getDetails().get("invoking")); } @Test @@ -111,14 +111,6 @@ public void testReadinessCheckFailedAndCallbackNotRun() { Assert.assertFalse(applicationHealthCheckCallback.isMark()); } - @Test - public void testReadinessCheckSuccessAndCallbackRun() { - initApplicationContext(false, false, ReadinessCheckSuccessTestConfiguration.class); - ApplicationHealthCheckCallback applicationHealthCheckCallback = ctx - .getBean(ApplicationHealthCheckCallback.class); - Assert.assertTrue(applicationHealthCheckCallback.isMark()); - } - @Test public void testBreakingReadinessCheckCallback() { initApplicationContext(false, false, ReadinessCheckCallbackBreakTestConfiguration.class); diff --git a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java index 50c7c0244..cc160801f 100644 --- a/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java +++ b/sofa-boot-project/sofa-boot-core/healthcheck-sofa-boot/src/test/java/com/alipay/sofa/healthcheck/test/bean/MiddlewareHealthCheckCallback.java @@ -20,13 +20,14 @@ import org.springframework.context.ApplicationContext; import com.alipay.sofa.healthcheck.startup.ReadinessCheckCallback; +import org.springframework.core.PriorityOrdered; /** * @author liangen * @author qilong.zql * @version 2.3.0 */ -public class MiddlewareHealthCheckCallback implements ReadinessCheckCallback { +public class MiddlewareHealthCheckCallback implements ReadinessCheckCallback, PriorityOrdered { private boolean health; @@ -42,4 +43,9 @@ public Health onHealthy(ApplicationContext applicationContext) { return Health.down().withDetail("server", "server is bad").build(); } } + + @Override + public int getOrder() { + return PriorityOrdered.HIGHEST_PRECEDENCE; + } }