package com.intrbiz.bergamot.check.jmx; import java.util.Timer; import java.util.TimerTask; import java.util.function.Consumer; /** * A JDBC based check framework */ public class JMXChecker { private int defaultTimeoutSeconds; private final Timer timer; public JMXChecker(int defaultTimeoutSeconds) { this.defaultTimeoutSeconds = defaultTimeoutSeconds; // this.timer = new Timer(); // some util timer tasks // every 5 minutes forcefully purge the timer queue // we cancel most task (hopefully) this.timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { // purge the timer queue JMXChecker.this.timer.purge(); } }, 300_000L, 300_000L); } public JMXChecker() { this(60); } public int getTimeoutSeconds() { return defaultTimeoutSeconds; } Timer getTimer() { return this.timer; } public JMXCheckContext createContext() { return new JMXCheckContext((t) -> { throw new JMXException(t); }); } public JMXCheckContext createContext(Consumer<Throwable> errorHandler) { return new JMXCheckContext(errorHandler); } public void shutdown() { } }