You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/06/09 13:31:36 UTC
[camel] branch master updated: camel-health - Fix duplicate checks
in mp-fault due to cdi proxy classes causing equalus to not work with
distinct.
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
The following commit(s) were added to refs/heads/master by this push:
new 12ce4a8 camel-health - Fix duplicate checks in mp-fault due to cdi proxy classes causing equalus to not work with distinct.
12ce4a8 is described below
commit 12ce4a85b86e6413b7066fbc64db6094a068f5c2
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 9 15:31:09 2020 +0200
camel-health - Fix duplicate checks in mp-fault due to cdi proxy classes causing equalus to not work with distinct.
---
.../microprofile/health/AbstractCamelMicroProfileHealthCheck.java | 6 ++++--
.../camel/microprofile/health/CamelMicroProfileLivenessCheck.java | 5 +++++
.../camel/microprofile/health/CamelMicroProfileReadinessCheck.java | 5 +++++
.../src/main/java/org/apache/camel/health/HealthCheckHelper.java | 1 +
.../main/java/org/apache/camel/impl/health/AbstractHealthCheck.java | 6 +++---
5 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/AbstractCamelMicroProfileHealthCheck.java b/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/AbstractCamelMicroProfileHealthCheck.java
index bddb3e6..d76b6dc 100644
--- a/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/AbstractCamelMicroProfileHealthCheck.java
+++ b/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/AbstractCamelMicroProfileHealthCheck.java
@@ -40,6 +40,8 @@ public abstract class AbstractCamelMicroProfileHealthCheck implements HealthChec
@Inject
protected CamelContext camelContext;
+ protected abstract boolean acceptHealthCheck(AbstractHealthCheck check);
+
@Override
public HealthCheckResponse call() {
final HealthCheckResponseBuilder builder = HealthCheckResponse.builder();
@@ -51,8 +53,8 @@ public abstract class AbstractCamelMicroProfileHealthCheck implements HealthChec
(HealthCheckFilter) check ->
// skip context as we have our own context check
check.getId().equals("context")
- // or that its either supposed to be only a liveness or readiness and the Camel health check is not
- || (isLiveness() && !check.isLiveness() || isReadiness() && !check.isReadiness()));
+ // or if not accepted
+ || check instanceof AbstractHealthCheck && !acceptHealthCheck((AbstractHealthCheck) check));
for (Result result : results) {
Map<String, Object> details = result.getDetails();
diff --git a/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileLivenessCheck.java b/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileLivenessCheck.java
index 4a8d23a..95335d8 100644
--- a/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileLivenessCheck.java
+++ b/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileLivenessCheck.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.microprofile.health;
+import org.apache.camel.impl.health.AbstractHealthCheck;
import org.eclipse.microprofile.health.Liveness;
/**
@@ -28,6 +29,10 @@ public class CamelMicroProfileLivenessCheck extends AbstractCamelMicroProfileHea
return false;
}
+ protected boolean acceptHealthCheck(AbstractHealthCheck check) {
+ return check.isLiveness();
+ }
+
@Override
String getHealthCheckName() {
return "camel-liveness-checks";
diff --git a/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileReadinessCheck.java b/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileReadinessCheck.java
index c02ee98..7c1514a 100644
--- a/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileReadinessCheck.java
+++ b/components/camel-microprofile-health/src/main/java/org/apache/camel/microprofile/health/CamelMicroProfileReadinessCheck.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.microprofile.health;
+import org.apache.camel.impl.health.AbstractHealthCheck;
import org.eclipse.microprofile.health.Readiness;
/**
@@ -28,6 +29,10 @@ public class CamelMicroProfileReadinessCheck extends AbstractCamelMicroProfileHe
return false;
}
+ protected boolean acceptHealthCheck(AbstractHealthCheck check) {
+ return check.isReadiness();
+ }
+
@Override
String getHealthCheckName() {
return "camel-readiness-checks";
diff --git a/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java b/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
index f81e8dd..ed98d21 100644
--- a/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
+++ b/core/camel-api/src/main/java/org/apache/camel/health/HealthCheckHelper.java
@@ -119,6 +119,7 @@ public final class HealthCheckHelper {
.flatMap(Collection::stream)
.filter(check -> !filter.test(check))
.sorted(Comparator.comparingInt(HealthCheck::getOrder))
+ .distinct()
.map(check -> check.call(optionsSupplier.apply(check)))
.collect(Collectors.toList());
} else {
diff --git a/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java b/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java
index 679a0cb..8738f0f 100644
--- a/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java
+++ b/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java
@@ -211,13 +211,13 @@ public abstract class AbstractHealthCheck implements HealthCheck {
if (this == o) {
return true;
}
- if (o == null || getClass() != o.getClass()) {
+ if (!(o instanceof AbstractHealthCheck)) {
return false;
}
- AbstractHealthCheck check = (AbstractHealthCheck) o;
+ AbstractHealthCheck that = (AbstractHealthCheck) o;
- return id != null ? id.equals(check.id) : check.id == null;
+ return id.equals(that.id);
}
@Override