diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/monitor/DssRegistrationHealthMonitor.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/monitor/DssRegistrationHealthMonitor.java index 4894d9e1af16b9f22dc2e957238af5516b328338..f7cacd164b818f17956beb9b93174512ed934c1a 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/monitor/DssRegistrationHealthMonitor.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/monitor/DssRegistrationHealthMonitor.java @@ -25,7 +25,6 @@ import org.apache.log4j.Logger; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; -import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; /** * The helper class for checking if all conditions necessary for the succesfull registration are @@ -39,7 +38,7 @@ public class DssRegistrationHealthMonitor private static final Logger notificationLog = LogFactory.getLogger(LogCategory.NOTIFY, DssRegistrationHealthMonitor.class); - private final IEncapsulatedOpenBISService openBisService; + private IEncapsulatedOpenBISService openBisService; private final File recoveryStateDirectory; @@ -86,6 +85,17 @@ public class DssRegistrationHealthMonitor return instance; } + /** + * Use this method for tests only. + */ + public static void setOpenBisServiceForTest(IEncapsulatedOpenBISService openBisService) + { + if (instance != null) + { + instance.openBisService = openBisService; + } + } + private DssRegistrationHealthMonitor(IEncapsulatedOpenBISService openBisService, File recoveryStateDirectory) { @@ -100,6 +110,12 @@ public class DssRegistrationHealthMonitor private static final String MESSAGE_RESOURCE_UNAVAILABLE = "The resource %s has become unavailable."; + public boolean isApplicationReady(File dropboxDirectory) + { + return isFilesystemAvailable(dropboxDirectory) && isRecoveryStateFileSystemAvailable() + && isApplicationServerAlive(); + } + /** * Updates the information about the resource recognized by key is available. It the * availability of the given resource has changed - the notification is being sent. @@ -137,7 +153,7 @@ public class DssRegistrationHealthMonitor { try { - openBisService.didEntityOperationsSucceed(new TechId(1)); + openBisService.heartbeat(); } catch (Exception e) { return false; diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java index 60da45a3b0b363dcee1fac2fb876a73e0fdfa74b..69d011ab96be6c083ef07a69d4b27acf22dbb6b4 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java @@ -719,4 +719,10 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer return service.didEntityOperationsSucceed(session.getToken(), registrationId); } + @Override + public void heartbeat() + { + service.heartbeat(session.getToken()); + } + } \ No newline at end of file diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java index fe2e6b0305e8a8192cff6bd75c2586f26cd0aba9..e3067abea97f54b7dd7c250e87575b92f9672f4f 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java @@ -514,4 +514,11 @@ public interface IEncapsulatedOpenBISService */ @ManagedAuthentication public EntityOperationsState didEntityOperationsSucceed(TechId registrationId); + + /** + * {@link IETLLIMSService#heartbeat(String)} + */ + @ManagedAuthentication + public void heartbeat(); + } \ No newline at end of file