diff --git a/bootstrapper-maven-plugin/pom.xml b/bootstrapper-maven-plugin/pom.xml
index c306dcea35..a55636840b 100644
--- a/bootstrapper-maven-plugin/pom.xml
+++ b/bootstrapper-maven-plugin/pom.xml
@@ -14,10 +14,10 @@
Operator SDK - Bootstrapper Maven Plugin
- 3.15.1
+ 3.15.2
3.9.11
3.0.0
- 3.15.1
+ 3.15.2
@@ -58,7 +58,7 @@
commons-io
commons-io
- 2.20.0
+ 2.21.0
com.github.spullara.mustache.java
diff --git a/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java b/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperIT.java
similarity index 96%
rename from bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java
rename to bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperIT.java
index f7840c1585..ec1399fcf8 100644
--- a/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java
+++ b/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperIT.java
@@ -13,9 +13,9 @@
import static org.assertj.core.api.Assertions.assertThat;
-class BootstrapperTest {
+class BootstrapperIT {
- private static final Logger log = LoggerFactory.getLogger(BootstrapperTest.class);
+ private static final Logger log = LoggerFactory.getLogger(BootstrapperIT.class);
Bootstrapper bootstrapper = new Bootstrapper();
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerWrappingEventSourceHealthIndicator.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerWrappingEventSourceHealthIndicator.java
index 2c337f3cd7..720ce0227c 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerWrappingEventSourceHealthIndicator.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerWrappingEventSourceHealthIndicator.java
@@ -11,11 +11,8 @@ public interface InformerWrappingEventSourceHealthIndicator i.getStatus() != Status.HEALTHY)
- .findAny();
-
- return nonUp.isPresent() ? Status.UNHEALTHY : Status.HEALTHY;
+ var hasNonHealthy =
+ informerHealthIndicators().values().stream().anyMatch(i -> i.getStatus() != Status.HEALTHY);
+ return hasNonHealthy ? Status.UNHEALTHY : Status.HEALTHY;
}
}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java
index c07ffdbf46..2bb6dcbc75 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java
@@ -204,8 +204,8 @@ public boolean isRunning() {
public Status getStatus() {
var status = isRunning() && hasSynced() && isWatching() ? Status.HEALTHY : Status.UNHEALTHY;
log.debug(
- "Informer status: {} for for type: {}, namespace: {}, details[ is running: {}, has synced:"
- + " {}, is watching: {} ]",
+ "Informer status: {} for type: {}, namespace: {}, details [is running: {}, has synced: {},"
+ + " is watching: {}]",
status,
informer.getApiTypeClass().getSimpleName(),
namespaceIdentifier,
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java
index 53c0d328a8..a6801b5f39 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java
@@ -10,6 +10,7 @@
import org.slf4j.LoggerFactory;
import io.fabric8.kubernetes.api.model.HasMetadata;
+import io.javaoperatorsdk.operator.health.Status;
import io.javaoperatorsdk.operator.processing.event.Event;
import io.javaoperatorsdk.operator.processing.event.ResourceID;
import io.javaoperatorsdk.operator.processing.event.source.AbstractEventSource;
@@ -77,6 +78,11 @@ public void stop() {
}
}
+ @Override
+ public Status getStatus() {
+ return isRunning() ? Status.HEALTHY : Status.UNHEALTHY;
+ }
+
@Override
public Set getSecondaryResources(HasMetadata primary) {
return Set.of();
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/OperatorTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/OperatorIT.java
similarity index 99%
rename from operator-framework-core/src/test/java/io/javaoperatorsdk/operator/OperatorTest.java
rename to operator-framework-core/src/test/java/io/javaoperatorsdk/operator/OperatorIT.java
index 39fc98f6b0..42309d5c44 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/OperatorTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/OperatorIT.java
@@ -15,7 +15,8 @@
import static org.junit.jupiter.api.Assertions.*;
@SuppressWarnings("rawtypes")
-class OperatorTest {
+class OperatorIT {
+
@Test
void shouldBePossibleToRetrieveNumberOfRegisteredControllers() {
final var operator = new Operator();
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java
index 0f7d26446d..448537e9aa 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java
@@ -87,7 +87,7 @@ void propagatesEventOnNewResourceForPrimary() throws InterruptedException {
}
@Test
- void updatesHealthIndicatorBasedOnExceptionsInFetcher() throws InterruptedException {
+ void updatesHealthIndicatorBasedOnExceptionsInFetcher() {
when(resourceFetcher.fetchResources()).thenReturn(testResponseWithOneValue());
pollingEventSource.start();
assertThat(pollingEventSource.getStatus()).isEqualTo(Status.HEALTHY);
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java
index 9396411777..825bc6adab 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java
@@ -1,6 +1,5 @@
package io.javaoperatorsdk.operator.processing.event.source.timer;
-import java.io.IOException;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeUnit;
@@ -12,6 +11,7 @@
import org.junit.jupiter.api.Test;
import io.javaoperatorsdk.operator.TestUtils;
+import io.javaoperatorsdk.operator.health.Status;
import io.javaoperatorsdk.operator.processing.event.Event;
import io.javaoperatorsdk.operator.processing.event.EventHandler;
import io.javaoperatorsdk.operator.processing.event.ResourceID;
@@ -42,6 +42,7 @@ public void schedulesOnce() {
untilAsserted(() -> assertThat(eventHandler.events).hasSize(1));
untilAsserted(PERIOD * 2, 0, () -> assertThat(eventHandler.events).hasSize(1));
+ assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
}
@Test
@@ -52,6 +53,7 @@ public void canCancelOnce() {
source.cancelOnceSchedule(resourceID);
untilAsserted(() -> assertThat(eventHandler.events).isEmpty());
+ assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
}
@Test
@@ -62,6 +64,7 @@ public void canRescheduleOnceEvent() {
source.scheduleOnce(resourceID, 2 * PERIOD);
untilAsserted(PERIOD * 2, PERIOD, () -> assertThat(eventHandler.events).hasSize(1));
+ assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
}
@Test
@@ -72,23 +75,29 @@ public void deRegistersOnceEventSources() {
source.onResourceDeleted(customResource);
untilAsserted(() -> assertThat(eventHandler.events).isEmpty());
+ assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
}
@Test
- public void eventNotRegisteredIfStopped() throws IOException {
+ public void eventNotRegisteredIfStopped() {
var resourceID = ResourceID.fromResource(TestUtils.testCustomResource());
+ assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
source.stop();
assertThatExceptionOfType(IllegalStateException.class)
.isThrownBy(() -> source.scheduleOnce(resourceID, PERIOD));
+ assertThat(source.getStatus()).isEqualTo(Status.UNHEALTHY);
}
@Test
- public void eventNotFiredIfStopped() throws IOException {
+ public void eventNotFiredIfStopped() {
source.scheduleOnce(ResourceID.fromResource(TestUtils.testCustomResource()), PERIOD);
+ assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
+
source.stop();
untilAsserted(() -> assertThat(eventHandler.events).isEmpty());
+ assertThat(source.getStatus()).isEqualTo(Status.UNHEALTHY);
}
private void untilAsserted(ThrowingRunnable assertion) {
diff --git a/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtensionTest.java b/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtensionIT.java
similarity index 95%
rename from operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtensionTest.java
rename to operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtensionIT.java
index 04ac7a91ae..e195ce8406 100644
--- a/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtensionTest.java
+++ b/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtensionIT.java
@@ -9,7 +9,7 @@
import static org.junit.jupiter.api.Assertions.*;
-class LocallyRunOperatorExtensionTest {
+class LocallyRunOperatorExtensionIT {
@Test
void getAdditionalCRDsFromFiles() {
diff --git a/pom.xml b/pom.xml
index 303c11f79b..6391b298dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,10 +63,10 @@
3.27.6
4.3.0
2.7.3
- 1.15.5
- 3.2.2
+ 1.16.0
+ 3.2.3
0.9.14
- 2.20.0
+ 2.21.0
4.16
2.11