From e39feb11a438ae06be84e6b769da111eeeb97c5f Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Thu, 14 Jun 2012 13:47:11 +0000 Subject: [PATCH] BIS-21 SP-107 add heartbeat method to etl service SVN: 25711 --- .../monitor/DssRegistrationHealthMonitor.java | 22 ++++++++++++++++--- .../server/EncapsulatedOpenBISService.java | 6 +++++ .../shared/IEncapsulatedOpenBISService.java | 7 ++++++ 3 files changed, 32 insertions(+), 3 deletions(-) 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 4894d9e1af1..f7cacd164b8 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 60da45a3b0b..69d011ab96b 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 fe2e6b0305e..e3067abea97 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 -- GitLab