import eu.kennytv.maintenance.api.event.MaintenanceReloadedEvent;
import eu.kennytv.maintenance.api.event.manager.EventListener;
public class ExternalServiceSync {
private final StatusPageAPI statusPage;
private final MetricsService metrics;
public ExternalServiceSync(StatusPageAPI statusPage, MetricsService metrics) {
this.statusPage = statusPage;
this.metrics = metrics;
}
public void register(EventManager eventManager) {
eventManager.registerListener(new EventListener<MaintenanceReloadedEvent>() {
@Override
public void onEvent(MaintenanceReloadedEvent event) {
Maintenance api = MaintenanceProvider.get();
// Update external status page
statusPage.updateMaintenanceStatus(api.isMaintenance());
// Track reload in metrics
metrics.recordEvent("maintenance_reload");
// Log configuration changes
Settings settings = api.getSettings();
metrics.recordConfig(
"maintenance_enabled",
String.valueOf(api.isMaintenance())
);
}
}, MaintenanceReloadedEvent.class);
}
}