storagehub/src/main/java/org/gcube/data/access/storagehub/health/JCRRepositoryCheck.java

36 lines
1010 B
Java
Raw Normal View History

2023-02-13 11:16:44 +01:00
package org.gcube.data.access.storagehub.health;
import javax.jcr.LoginException;
import javax.jcr.Session;
import org.gcube.common.health.api.HealthCheck;
import org.gcube.common.health.api.ReadinessChecker;
import org.gcube.common.health.api.response.HealthCheckResponse;
2024-04-05 21:11:04 +02:00
import org.gcube.data.access.storagehub.repository.StoragehubRepository;
2023-02-13 11:16:44 +01:00
@ReadinessChecker
public class JCRRepositoryCheck implements HealthCheck{
2024-04-05 21:11:04 +02:00
StoragehubRepository repository = StoragehubRepository.repository;
2023-02-13 11:16:44 +01:00
@Override
public String getName() {
return "Jackrabbit repository";
}
@Override
public HealthCheckResponse check() {
try {
2024-04-05 21:11:04 +02:00
Session session = repository.getRepository().login();
2023-02-13 11:16:44 +01:00
if (session != null) session.logout();
return HealthCheckResponse.builder(getName()).up().build();
}catch (LoginException e) { }
catch(Throwable ex) {
2024-01-24 16:32:18 +01:00
return HealthCheckResponse.builder(getName()).down().error(ex.getMessage()).build();
2023-02-13 11:16:44 +01:00
}
return HealthCheckResponse.builder(getName()).up().build();
}
}