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

View File

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

View File

@@ -33,11 +33,9 @@ public interface HBDataCollectorService
void collectAndSendData(); void collectAndSendData();
boolean isHbEnabled(); void enabled(boolean enabled);
void setHbEnabled(boolean enabled); boolean isEnabledByDefault();
boolean getDefaultHbState();
} }