mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
REPO-2850 Heartbeat: Add support for turning the data collection on/off based on the heartbeat.enabled global property
* Add support for enabled property * Add support for hearbeat target url propery
This commit is contained in:
committed by
Ancuta Morarasu
parent
58f272d01b
commit
fc05980f98
@@ -41,7 +41,15 @@ public class HBDataCollectorServiceImpl implements HBDataCollectorService
|
|||||||
|
|
||||||
private List<HBBaseDataCollector> collectors = new LinkedList<>();
|
private List<HBBaseDataCollector> collectors = new LinkedList<>();
|
||||||
private HBDataSenderService hbDataSenderService;
|
private HBDataSenderService hbDataSenderService;
|
||||||
private boolean enabled;
|
private boolean enabled = false;
|
||||||
|
/** The default enable state */
|
||||||
|
private final boolean defaultHbState;
|
||||||
|
|
||||||
|
public HBDataCollectorServiceImpl (boolean defaultHeartBeatState)
|
||||||
|
{
|
||||||
|
this.defaultHbState = defaultHeartBeatState;
|
||||||
|
this.enabled = defaultHeartBeatState;
|
||||||
|
}
|
||||||
|
|
||||||
public void setHbDataSenderService(HBDataSenderService hbDataSenderService)
|
public void setHbDataSenderService(HBDataSenderService hbDataSenderService)
|
||||||
{
|
{
|
||||||
@@ -72,9 +80,21 @@ public class HBDataCollectorServiceImpl implements HBDataCollectorService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isHBEnabled()
|
public boolean getDefaultHbState()
|
||||||
|
{
|
||||||
|
return defaultHbState;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isHbEnabled()
|
||||||
{
|
{
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHbEnabled(boolean enabled)
|
||||||
|
{
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -55,11 +55,6 @@ import org.springframework.context.ApplicationContext;
|
|||||||
public class HeartBeat implements LicenseChangeHandler
|
public class HeartBeat implements LicenseChangeHandler
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final String LAMBDA_INGEST_URL = "https://0s910f9ijc.execute-api.eu-west-1.amazonaws.com/Stage/ingest";
|
|
||||||
|
|
||||||
/** The default enable state */
|
|
||||||
private static final boolean DEFAULT_HEARTBEAT_ENABLED = true;
|
|
||||||
|
|
||||||
/** The logger. */
|
/** The logger. */
|
||||||
private static final Log logger = LogFactory.getLog(HeartBeat.class);
|
private static final Log logger = LogFactory.getLog(HeartBeat.class);
|
||||||
|
|
||||||
@@ -67,16 +62,10 @@ public class HeartBeat implements LicenseChangeHandler
|
|||||||
|
|
||||||
private Scheduler scheduler;
|
private Scheduler scheduler;
|
||||||
|
|
||||||
/** URL to post heartbeat to. */
|
|
||||||
private String heartBeatUrl;
|
|
||||||
|
|
||||||
private boolean testMode = true;
|
private boolean testMode = true;
|
||||||
|
|
||||||
private final String JOB_NAME = "heartbeat";
|
private final String JOB_NAME = "heartbeat";
|
||||||
|
|
||||||
/** Is the heartbeat enabled */
|
|
||||||
private boolean enabled = DEFAULT_HEARTBEAT_ENABLED;
|
|
||||||
|
|
||||||
private HBDataCollectorService dataCollectorService;
|
private HBDataCollectorService dataCollectorService;
|
||||||
|
|
||||||
|
|
||||||
@@ -141,34 +130,34 @@ public class HeartBeat implements LicenseChangeHandler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void setHeartBeatUrl(String heartBeatUrl)
|
// private synchronized void setHeartBeatUrl(String heartBeatUrl)
|
||||||
{
|
// {
|
||||||
this.heartBeatUrl = heartBeatUrl;
|
// this.heartBeatUrl = heartBeatUrl;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// Determine the URL to send the heartbeat to from the license if not set
|
// // Determine the URL to send the heartbeat to from the license if not set
|
||||||
private synchronized String getHeartBeatUrl()
|
// private synchronized String getHeartBeatUrl()
|
||||||
{
|
// {
|
||||||
if (heartBeatUrl == null)
|
// if (heartBeatUrl == null)
|
||||||
{
|
// {
|
||||||
// GC: Ignore the standard heartbeat URL and always use the AWS/Lambda URL
|
// // GC: Ignore the standard heartbeat URL and always use the AWS/Lambda URL
|
||||||
// LicenseDescriptor licenseDescriptor = licenseService.getLicense();
|
//// LicenseDescriptor licenseDescriptor = licenseService.getLicense();
|
||||||
// String url = (licenseDescriptor == null) ? null : licenseDescriptor.getHeartBeatUrl();
|
//// String url = (licenseDescriptor == null) ? null : licenseDescriptor.getHeartBeatUrl();
|
||||||
// setHeartBeatUrl(url == null ? HeartBeat.DEFAULT_URL : url);
|
//// setHeartBeatUrl(url == null ? HeartBeat.DEFAULT_URL : url);
|
||||||
setHeartBeatUrl(LAMBDA_INGEST_URL);
|
// setHeartBeatUrl(LAMBDA_INGEST_URL);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
logger.debug("Returning heartBeatUrl: " + heartBeatUrl);
|
// logger.debug("Returning heartBeatUrl: " + heartBeatUrl);
|
||||||
|
//
|
||||||
return heartBeatUrl;
|
// return heartBeatUrl;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return <tt>true</tt> if the heartbeat is currently enabled
|
* @return <tt>true</tt> if the heartbeat is currently enabled
|
||||||
*/
|
*/
|
||||||
public synchronized boolean isEnabled()
|
public synchronized boolean isEnabled()
|
||||||
{
|
{
|
||||||
return enabled;
|
return dataCollectorService.isHbEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -193,13 +182,13 @@ public class HeartBeat implements LicenseChangeHandler
|
|||||||
{
|
{
|
||||||
logger.debug("Update license called");
|
logger.debug("Update license called");
|
||||||
|
|
||||||
setHeartBeatUrl(licenseDescriptor.getHeartBeatUrl());
|
//setHeartBeatUrl(licenseDescriptor.getHeartBeatUrl());
|
||||||
boolean newEnabled = !licenseDescriptor.isHeartBeatDisabled();
|
boolean newEnabled = !licenseDescriptor.isHeartBeatDisabled();
|
||||||
|
|
||||||
if (newEnabled != enabled)
|
if (newEnabled != dataCollectorService.isHbEnabled())
|
||||||
{
|
{
|
||||||
logger.debug("State change of heartbeat");
|
logger.debug("State change of heartbeat");
|
||||||
this.enabled = newEnabled;
|
dataCollectorService.setHbEnabled(newEnabled);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
scheduleJob();
|
scheduleJob();
|
||||||
@@ -217,12 +206,12 @@ public class HeartBeat implements LicenseChangeHandler
|
|||||||
@Override
|
@Override
|
||||||
public synchronized void onLicenseFail()
|
public synchronized void onLicenseFail()
|
||||||
{
|
{
|
||||||
boolean newEnabled = DEFAULT_HEARTBEAT_ENABLED;
|
boolean newEnabled = dataCollectorService.getDefaultHbState();
|
||||||
|
|
||||||
if (newEnabled != enabled)
|
if (newEnabled != dataCollectorService.isHbEnabled())
|
||||||
{
|
{
|
||||||
logger.debug("State change of heartbeat");
|
logger.debug("State change of heartbeat");
|
||||||
this.enabled = newEnabled;
|
dataCollectorService.setHbEnabled(newEnabled);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
scheduleJob();
|
scheduleJob();
|
||||||
@@ -241,7 +230,7 @@ public class HeartBeat implements LicenseChangeHandler
|
|||||||
private synchronized void scheduleJob() throws SchedulerException
|
private synchronized void scheduleJob() throws SchedulerException
|
||||||
{
|
{
|
||||||
// Schedule the heart beat to run regularly
|
// Schedule the heart beat to run regularly
|
||||||
if(enabled)
|
if(dataCollectorService.isHbEnabled())
|
||||||
{
|
{
|
||||||
logger.debug("heartbeat job scheduled");
|
logger.debug("heartbeat job scheduled");
|
||||||
final JobDetail jobDetail = new JobDetail(JOB_NAME, Scheduler.DEFAULT_GROUP, HeartBeatJob.class);
|
final JobDetail jobDetail = new JobDetail(JOB_NAME, Scheduler.DEFAULT_GROUP, HeartBeatJob.class);
|
||||||
|
@@ -33,7 +33,11 @@ public interface HBDataCollectorService
|
|||||||
|
|
||||||
void collectAndSendData();
|
void collectAndSendData();
|
||||||
|
|
||||||
boolean isHBEnabled();
|
boolean isHbEnabled();
|
||||||
|
|
||||||
|
void setHbEnabled(boolean enabled);
|
||||||
|
|
||||||
|
boolean getDefaultHbState();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -4,10 +4,12 @@
|
|||||||
<beans>
|
<beans>
|
||||||
|
|
||||||
<bean id="hbDataSenderService" class="org.alfresco.heartbeat.datasender.internal.HBDataSenderServiceImpl">
|
<bean id="hbDataSenderService" class="org.alfresco.heartbeat.datasender.internal.HBDataSenderServiceImpl">
|
||||||
|
<constructor-arg value="${heartbeat.target.url}" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- HeartBeat data collector service -->
|
<!-- HeartBeat data collector service -->
|
||||||
<bean id="hbDataCollectorService" class="org.alfresco.heartbeat.HBDataCollectorServiceImpl">
|
<bean id="hbDataCollectorService" class="org.alfresco.heartbeat.HBDataCollectorServiceImpl">
|
||||||
|
<constructor-arg value="${heartbeat.enabled}" />
|
||||||
<property name="hbDataSenderService" ref="hbDataSenderService" />
|
<property name="hbDataSenderService" ref="hbDataSenderService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
@@ -1242,3 +1242,7 @@ system.email.sender.default=noreply@alfresco.com
|
|||||||
# reset password workflow will expire in an hour
|
# reset password workflow will expire in an hour
|
||||||
system.reset-password.endTimer=PT1H
|
system.reset-password.endTimer=PT1H
|
||||||
system.reset-password.sendEmailAsynchronously=true
|
system.reset-password.sendEmailAsynchronously=true
|
||||||
|
|
||||||
|
# HeartBeat
|
||||||
|
heartbeat.enabled=false
|
||||||
|
heartbeat.target.url=heartbeat.alfresco.com
|
||||||
|
Reference in New Issue
Block a user