Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
import java.util.function.Supplier;

import jakarta.inject.Inject;
import jakarta.inject.Named;
import org.cloudfoundry.multiapps.common.SLException;
Expand All @@ -29,7 +30,7 @@
import org.cloudfoundry.multiapps.controller.core.util.ApplicationInstanceNameUtil;
import org.cloudfoundry.multiapps.controller.persistence.services.DatabaseHealthService;
import org.cloudfoundry.multiapps.controller.persistence.services.DatabaseMonitoringService;
import org.cloudfoundry.multiapps.controller.persistence.services.ObjectStoreFileStorage;
import org.cloudfoundry.multiapps.controller.persistence.services.FileStorage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -46,7 +47,7 @@ public class ApplicationHealthCalculator {
// timeout
private static final int TOTAL_TASK_TIMEOUT_IN_SECONDS = 3 * SINGLE_TASK_TIMEOUT_IN_SECONDS;

private final ObjectStoreFileStorage objectStoreFileStorage;
private final FileStorage objectStoreFileStorage;
private final ApplicationConfiguration applicationConfiguration;
private final DatabaseHealthService databaseHealthService;
private final DatabaseMonitoringService databaseMonitoringService;
Expand Down Expand Up @@ -74,7 +75,7 @@ public class ApplicationHealthCalculator {
private final ResilientOperationExecutor resilientOperationExecutor = getResilienceExecutor();

@Inject
public ApplicationHealthCalculator(@Autowired(required = false) ObjectStoreFileStorage objectStoreFileStorage,
public ApplicationHealthCalculator(@Autowired(required = false) FileStorage objectStoreFileStorage,
ApplicationConfiguration applicationConfiguration, DatabaseHealthService databaseHealthService,
DatabaseMonitoringService databaseMonitoringService,
DatabaseWaitingLocksAnalyzer databaseWaitingLocksAnalyzer) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
package org.cloudfoundry.multiapps.controller.core.application.health;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.cloudfoundry.multiapps.common.SLException;
import org.cloudfoundry.multiapps.controller.client.util.ResilientOperationExecutor;
import org.cloudfoundry.multiapps.controller.core.application.health.database.DatabaseWaitingLocksAnalyzer;
import org.cloudfoundry.multiapps.controller.core.application.health.model.ApplicationHealthResult;
import org.cloudfoundry.multiapps.controller.core.util.ApplicationConfiguration;
import org.cloudfoundry.multiapps.controller.persistence.services.DatabaseHealthService;
import org.cloudfoundry.multiapps.controller.persistence.services.DatabaseMonitoringService;
import org.cloudfoundry.multiapps.controller.persistence.services.ObjectStoreFileStorage;
import org.cloudfoundry.multiapps.controller.persistence.services.JCloudsObjectStoreFileStorage;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
Expand All @@ -20,10 +16,14 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

class ApplicationHealthCalculatorTest {

@Mock
private ObjectStoreFileStorage objectStoreFileStorage;
private JCloudsObjectStoreFileStorage jCloudsObjectStoreFileStorage;
@Mock
private ApplicationConfiguration applicationConfiguration;
@Mock
Expand All @@ -41,7 +41,7 @@ void setUp() throws Exception {
.close();
Mockito.when(applicationConfiguration.isHealthCheckEnabled())
.thenReturn(true);
applicationHealthCalculator = new ApplicationHealthCalculatorMock(objectStoreFileStorage,
applicationHealthCalculator = new ApplicationHealthCalculatorMock(jCloudsObjectStoreFileStorage,
applicationConfiguration,
databaseHealthService,
databaseMonitoringService,
Expand All @@ -51,7 +51,7 @@ void setUp() throws Exception {
@Test
void testUpdateWithFailingObjectStore() {
Mockito.doThrow(new SLException("Object store not working"))
.when(objectStoreFileStorage)
.when(jCloudsObjectStoreFileStorage)
.testConnection();
applicationHealthCalculator.updateHealthStatus();
ResponseEntity<ApplicationHealthResult> applicationHealthResultResponseEntity = applicationHealthCalculator.calculateApplicationHealth();
Expand Down Expand Up @@ -117,12 +117,12 @@ void testSuccessfulUpdateWithMissingObjectStore() {
}

private static class ApplicationHealthCalculatorMock extends ApplicationHealthCalculator {
public ApplicationHealthCalculatorMock(ObjectStoreFileStorage objectStoreFileStorage,
public ApplicationHealthCalculatorMock(JCloudsObjectStoreFileStorage JCloudsObjectStoreFileStorage,
ApplicationConfiguration applicationConfiguration,
DatabaseHealthService databaseHealthService,
DatabaseMonitoringService databaseMonitoringService,
DatabaseWaitingLocksAnalyzer databaseWaitingLocksAnalyzer) {
super(objectStoreFileStorage,
super(JCloudsObjectStoreFileStorage,
applicationConfiguration,
databaseHealthService,
databaseMonitoringService,
Expand Down
23 changes: 15 additions & 8 deletions multiapps-controller-persistence/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,19 @@
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>azureblob</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>google-cloud-storage</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jclouds.common</groupId>
<artifactId>googlecloud</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-blobstore</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>google-cloud-storage</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
Expand Down Expand Up @@ -151,6 +153,11 @@
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-nio</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,19 @@
requires aliyun.sdk.oss;
requires com.fasterxml.jackson.annotation;
requires com.fasterxml.jackson.databind;
requires com.google.auth;
requires com.google.auth.oauth2;
requires com.google.auto.service;
requires com.google.common;
requires com.google.guice;
requires com.zaxxer.hikari;
requires flowable.engine;
requires flowable.engine.common.api;
requires flowable.variable.service.api;
requires gax;
requires google.cloud.core;
requires google.cloud.nio;
requires google.cloud.storage;
requires jakarta.inject;
requires org.apache.logging.log4j;
requires org.apache.logging.log4j.core;
Expand All @@ -53,5 +59,4 @@
requires static org.immutables.value;
requires jakarta.xml.bind;
requires org.bouncycastle.fips.pkix;

}
Loading
Loading