Skip to content

Commit 516c1f8

Browse files
chore: Minor changes to be v2 and v3 in sync (#4533)
Signed-off-by: Pavel Jareš <Pavel.Jares@broadcom.com> Signed-off-by: nxhafa <nxhafa11@gmail.com> Co-authored-by: nxhafa <nxhafa11@gmail.com>
1 parent 7221345 commit 516c1f8

File tree

5 files changed

+37
-28
lines changed

5 files changed

+37
-28
lines changed

caching-service/src/main/java/org/zowe/apiml/caching/health/CachingHealthIndicator.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.zowe.apiml.product.constants.CoreService;
2525

2626
import java.util.Optional;
27-
import java.util.concurrent.atomic.AtomicReference;
27+
import java.util.concurrent.atomic.AtomicBoolean;
2828

2929
/**
3030
* Caching service health information (/cachingservice/application/health)
@@ -34,10 +34,10 @@
3434
@ConditionalOnMissingBean(name = "modulithConfig")
3535
public class CachingHealthIndicator extends AbstractHealthIndicator implements ApplicationListener<ApplicationReadyEvent> {
3636

37-
private final AtomicReference<Boolean> serviceUp = new AtomicReference<>(false);
37+
private final AtomicBoolean serviceUp = new AtomicBoolean();
3838

3939
private final ApiMediationClient apiMediationClient;
40-
private final Optional<CachesHealthIndicator> cachesHealthIndicator;
40+
private final Optional<InfinispanHealthIndicator> infinispanHealthIndicator;
4141

4242
@Override
4343
protected void doHealthCheck(Health.Builder builder) {
@@ -46,12 +46,13 @@ protected void doHealthCheck(Health.Builder builder) {
4646
boolean gatewayUp = Optional.ofNullable(apiMediationClient.getEurekaClient())
4747
.map(eurekaClient -> eurekaClient.getApplication(CoreService.GATEWAY.getServiceId()))
4848
.map(Application::getInstances)
49-
.map(i -> !i.isEmpty())
49+
.map(instanceList -> !instanceList.isEmpty())
5050
.orElse(false);
5151
builder.withDetail(CoreService.GATEWAY.getServiceId(), gatewayUp ? Status.UP : Status.DOWN);
5252

53-
cachesHealthIndicator.ifPresent(i -> i.doHealthCheck(builder));
54-
if ((!(boolean) serviceUp.get()) || !gatewayUp) {
53+
infinispanHealthIndicator.ifPresent(indicator -> indicator.doHealthCheck(builder));
54+
boolean isCachingUp = this.serviceUp.get();
55+
if (!(isCachingUp && gatewayUp)) {
5556
builder.down();
5657
}
5758
}

caching-service/src/main/java/org/zowe/apiml/caching/health/CachesHealthIndicator.java renamed to caching-service/src/main/java/org/zowe/apiml/caching/health/InfinispanHealthIndicator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
@Component
3232
@ConditionalOnProperty(name = "caching.storage.mode", havingValue = "infinispan")
33-
public class CachesHealthIndicator extends AbstractHealthIndicator {
33+
public class InfinispanHealthIndicator extends AbstractHealthIndicator {
3434

3535
@Value("${caching.storage.infinispan.initialHosts:}")
3636
private String initialHosts;
@@ -69,7 +69,7 @@ protected void doHealthCheck(Health.Builder builder) {
6969
var initialHostsArray = StringUtils.split(initialHosts, ",");
7070
boolean allMembers = initialHostsArray.length <= nativeCacheManager.getMembers().size();
7171
var cluster = Map.of(
72-
"status", allMembers ? Status.UP : Status.DOWN,
72+
"status", allMembers ? Status.UP.getCode() : Status.DOWN.getCode(),
7373
"address", nativeCacheManager.getAddress().toString(),
7474
"initialHosts", initialHostsArray,
7575
"members", nativeCacheManager.getMembers().stream().map(Address::toString).toList()

caching-service/src/test/java/org/zowe/apiml/caching/health/CachingHealthIndicatorTest.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
import com.netflix.discovery.shared.Application;
1616
import org.junit.jupiter.api.Nested;
1717
import org.junit.jupiter.api.Test;
18+
import org.junit.jupiter.api.extension.ExtendWith;
19+
import org.mockito.Mock;
20+
import org.mockito.junit.jupiter.MockitoExtension;
1821
import org.springframework.boot.actuate.health.Health;
1922
import org.springframework.boot.actuate.health.Status;
2023
import org.springframework.boot.context.event.ApplicationReadyEvent;
@@ -26,10 +29,14 @@
2629

2730
import static org.mockito.Mockito.*;
2831

32+
@ExtendWith(MockitoExtension.class)
2933
class CachingHealthIndicatorTest {
3034

31-
private ApiMediationClient apiMediationClient = mock(ApiMediationClient.class);
32-
private Health.Builder builder = mock(Health.Builder.class);
35+
@Mock
36+
private ApiMediationClient apiMediationClient;
37+
38+
@Mock
39+
private Health.Builder builder;
3340

3441
void initEureka(boolean hasGw, boolean hasGwInstance) {
3542
var eurekaClient = mock(EurekaClient.class);
@@ -92,34 +99,35 @@ void givenGatewayInstanceAfterStartUp_whenBuildHealthIndicator_thenItIsUp() {
9299
@Nested
93100
class WithCacheIndicator {
94101

95-
private CachesHealthIndicator cachesHealthIndicator = mock(CachesHealthIndicator.class);
102+
@Mock
103+
private InfinispanHealthIndicator infinispanHealthIndicator;
96104

97105
@Test
98106
void givenNoGateway_whenBuildHealthIndicator_thenItIsDown() {
99107
initEureka(false, false);
100-
var cachingHealthIndicator = new CachingHealthIndicator(apiMediationClient, Optional.of(cachesHealthIndicator));
108+
var cachingHealthIndicator = new CachingHealthIndicator(apiMediationClient, Optional.of(infinispanHealthIndicator));
101109
cachingHealthIndicator.onApplicationEvent(mock(ApplicationReadyEvent.class));
102110
cachingHealthIndicator.doHealthCheck(builder);
103-
verify(cachesHealthIndicator).doHealthCheck(builder);
111+
verify(infinispanHealthIndicator).doHealthCheck(builder);
104112
verify(builder).down();
105113
}
106114

107115
@Test
108116
void givenNoStartUpEvent_whenBuildHealthIndicator_thenItIsDown() {
109117
initEureka(true, true);
110-
var cachingHealthIndicator = new CachingHealthIndicator(apiMediationClient, Optional.of(cachesHealthIndicator));
118+
var cachingHealthIndicator = new CachingHealthIndicator(apiMediationClient, Optional.of(infinispanHealthIndicator));
111119
cachingHealthIndicator.doHealthCheck(builder);
112-
verify(cachesHealthIndicator).doHealthCheck(builder);
120+
verify(infinispanHealthIndicator).doHealthCheck(builder);
113121
verify(builder).down();
114122
}
115123

116124
@Test
117125
void givenEverythingReady_whenBuildHealthIndicator_thenItIsUp() {
118126
initEureka(true, true);
119-
var cachingHealthIndicator = new CachingHealthIndicator(apiMediationClient, Optional.of(cachesHealthIndicator));
127+
var cachingHealthIndicator = new CachingHealthIndicator(apiMediationClient, Optional.of(infinispanHealthIndicator));
120128
cachingHealthIndicator.onApplicationEvent(mock(ApplicationReadyEvent.class));
121129
cachingHealthIndicator.doHealthCheck(builder);
122-
verify(cachesHealthIndicator).doHealthCheck(builder);
130+
verify(infinispanHealthIndicator).doHealthCheck(builder);
123131
verify(builder, never()).down();
124132
}
125133

caching-service/src/test/java/org/zowe/apiml/caching/health/CachesHealthIndicatorTest.java renamed to caching-service/src/test/java/org/zowe/apiml/caching/health/InfinispanHealthIndicatorTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,16 @@
3939
import static org.junit.jupiter.api.Assertions.assertTrue;
4040
import static org.mockito.Mockito.*;
4141

42-
class CachesHealthIndicatorTest {
42+
class InfinispanHealthIndicatorTest {
4343

4444
@Nested
4545
class BeforeSpringStartup {
4646

4747
@Test
4848
void givenApplication_whenStarting_thenReturnUnknownStatus() {
49-
var cachesHealthIndicator = new CachesHealthIndicator();
49+
var infinispanHealthIndicator = new InfinispanHealthIndicator();
5050
var builder = mock(Health.Builder.class);
51-
cachesHealthIndicator.doHealthCheck(builder);
51+
infinispanHealthIndicator.doHealthCheck(builder);
5252
verify(builder).unknown();
5353
}
5454

@@ -59,11 +59,11 @@ class UnsupportedCacheManager {
5959

6060
@Test
6161
void givenUnsupportedCacheManager_whenBuildHealth_thenNoDetailsAdded() {
62-
var cachesHealthIndicator = new CachesHealthIndicator();
63-
((AtomicReference<CacheManager>) ReflectionTestUtils.getField(cachesHealthIndicator, "cacheManager"))
62+
var infinispanHealthIndicator = new InfinispanHealthIndicator();
63+
((AtomicReference<CacheManager>) ReflectionTestUtils.getField(infinispanHealthIndicator, "cacheManager"))
6464
.set(mock(CacheManager.class));
6565
var builder = mock(Health.Builder.class);
66-
cachesHealthIndicator.doHealthCheck(builder);
66+
infinispanHealthIndicator.doHealthCheck(builder);
6767
verify(builder, never()).withDetail(any(), any());
6868
}
6969

@@ -112,12 +112,12 @@ void givenNonRunningCache_whenBuildHealth_thenItIsDown(
112112
doReturn(cache).when(nativeCacheManager).getCache(CACHE_1);
113113
doReturn(cacheStatus).when(cache).getStatus();
114114

115-
var cachesHealthIndicator = new CachesHealthIndicator();
116-
((AtomicReference<CacheManager>) ReflectionTestUtils.getField(cachesHealthIndicator, "cacheManager"))
115+
var infinispanHealthIndicator = new InfinispanHealthIndicator();
116+
((AtomicReference<CacheManager>) ReflectionTestUtils.getField(infinispanHealthIndicator, "cacheManager"))
117117
.set(cacheManager);
118-
ReflectionTestUtils.setField(cachesHealthIndicator, "initialHosts", "");
118+
ReflectionTestUtils.setField(infinispanHealthIndicator, "initialHosts", "");
119119
var builder = mock(Health.Builder.class);
120-
cachesHealthIndicator.doHealthCheck(builder);
120+
infinispanHealthIndicator.doHealthCheck(builder);
121121

122122
verify(builder).withDetail(eq(INFINISPAN), mapCaptor.capture());
123123
var mapDetails = mapCaptor.getValue();

integration-tests/src/test/java/org/zowe/apiml/functional/caching/JGroupStabilityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ public boolean isUp() {
271271
log.trace("URI: {}, JsonResponse is {}", request.getURI().toString(), jsonResponse);
272272

273273
if (StringUtils.isNotEmpty(jsonResponse)) {
274-
var status = JsonPath.parse(jsonResponse).read("components.caches.details.infinispan.cluster.status.status", String.class);
274+
var status = JsonPath.parse(jsonResponse).read("components.caching.details.infinispan.cluster.status", String.class);
275275
return "UP".equals(status);
276276
}
277277
return false;

0 commit comments

Comments
 (0)