package org.jvalue.ods.pegelalarm;
import com.codahale.metrics.health.HealthCheck;
import org.jvalue.ods.api.sources.DataSource;
import org.jvalue.ods.data.DataSourceManager;
import org.jvalue.ods.processor.ProcessorChainManager;
import javax.inject.Inject;
/**
* Asserts that a {@link org.jvalue.ods.api.sources.DataSource} with the id 'pegelalarm' exists.
*/
public class FilterChainHealthCheck extends HealthCheck implements Constants {
private final DataSourceManager dataSourceManager;
private final ProcessorChainManager processorChainManager;
@Inject
FilterChainHealthCheck(DataSourceManager dataSourceManager, ProcessorChainManager processorChainManager) {
this.dataSourceManager = dataSourceManager;
this.processorChainManager = processorChainManager;
}
@Override
protected Result check() throws Exception {
DataSource source = dataSourceManager.findBySourceId(DATA_SOURCE_ID);
if (processorChainManager.getAll(source).isEmpty()) return Result.unhealthy("no filter chains for source " + DATA_SOURCE_ID);
return Result.healthy();
}
}