REPO-2850 Heartbeat: Add support for turning the data collection on/off based on the heartbeat.enabled global property

* Move the enabled state from HBDataCollectorServiceImpl to HearBeat class as it is only modified there.
This commit is contained in:
Erik Knizat
2017-09-12 18:56:54 +01:00
parent a1dfc6fafe
commit 789d216fd2
3 changed files with 23 additions and 24 deletions

View File

@@ -45,9 +45,6 @@ public class HBDataCollectorServiceImpl implements HBDataCollectorService
/** The service responsible for sending the collected data */
private HBDataSenderService hbDataSenderService;
/** Current enabled state */
private boolean enabled = false;
/** The default enable state */
private final boolean defaultHbState;
@@ -59,7 +56,6 @@ public class HBDataCollectorServiceImpl implements HBDataCollectorService
public HBDataCollectorServiceImpl (boolean defaultHeartBeatState)
{
this.defaultHbState = defaultHeartBeatState;
this.enabled = defaultHeartBeatState;
}
public void setHbDataSenderService(HBDataSenderService hbDataSenderService)
@@ -102,22 +98,14 @@ public class HBDataCollectorServiceImpl implements HBDataCollectorService
}
@Override
public boolean getDefaultHbState()
public boolean isEnabledByDefault()
{
return defaultHbState;
}
@Override
public synchronized boolean isHbEnabled()
public synchronized void enabled(boolean enabled)
{
return enabled;
}
@Override
public synchronized void setHbEnabled(boolean enabled)
{
this.enabled = enabled;
this.hbDataSenderService.enable(enabled);
}

View File

@@ -67,6 +67,9 @@ public class HeartBeat implements LicenseChangeHandler
private HBDataCollectorService dataCollectorService;
/** Current enabled state */
private boolean enabled = false;
/**
* Initialises the heart beat service. Note that dependencies are intentionally 'pulled' rather than injected
* because we don't want these to be reconfigured.
@@ -101,6 +104,8 @@ public class HeartBeat implements LicenseChangeHandler
this.testMode = testMode;
this.enabled = dataCollectorService.isEnabledByDefault();
try
{
LicenseService licenseService = null;
@@ -128,6 +133,12 @@ public class HeartBeat implements LicenseChangeHandler
}
}
public synchronized boolean isEnabled()
{
return this.enabled;
}
/**
* Delegates data collection and sending to HBDataCollectorService.
*
@@ -149,13 +160,14 @@ public class HeartBeat implements LicenseChangeHandler
boolean newEnabled = !licenseDescriptor.isHeartBeatDisabled();
if (newEnabled != dataCollectorService.isHbEnabled())
if (newEnabled != this.enabled)
{
if (logger.isDebugEnabled())
{
logger.debug("State change of heartbeat");
}
dataCollectorService.setHbEnabled(newEnabled);
this.enabled = newEnabled;
dataCollectorService.enabled(newEnabled);
try
{
scheduleJob();
@@ -173,15 +185,16 @@ public class HeartBeat implements LicenseChangeHandler
@Override
public synchronized void onLicenseFail()
{
boolean newEnabled = dataCollectorService.getDefaultHbState();
boolean newEnabled = dataCollectorService.isEnabledByDefault();
if (newEnabled != dataCollectorService.isHbEnabled())
if (newEnabled != this.enabled)
{
if (logger.isDebugEnabled())
{
logger.debug("State change of heartbeat");
}
dataCollectorService.setHbEnabled(newEnabled);
this.enabled = newEnabled;
dataCollectorService.enabled(newEnabled);
try
{
scheduleJob();
@@ -201,7 +214,7 @@ public class HeartBeat implements LicenseChangeHandler
{
// Schedule the heart beat to run regularly
final String triggerName = JOB_NAME + "Trigger";
if(dataCollectorService.isHbEnabled())
if(this.enabled)
{
if (logger.isDebugEnabled())
{

View File

@@ -32,12 +32,10 @@ public interface HBDataCollectorService
void registerCollector(HBBaseDataCollector collector);
void collectAndSendData();
boolean isHbEnabled();
void setHbEnabled(boolean enabled);
void enabled(boolean enabled);
boolean getDefaultHbState();
boolean isEnabledByDefault();
}