package org.ovirt.engine.core.services; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet; /** * The only purpose of this wrapper is to make all hystrix jars and its dependencies optional. */ public class HystrixServlet extends HttpServlet { private HystrixMetricsStreamServlet hystrixMetricsStreamServlet; @Override public void init() throws ServletException { if (Config.getValue(ConfigValues.HystrixMonitoringEnabled)) { hystrixMetricsStreamServlet = new HystrixMetricsStreamServlet(); hystrixMetricsStreamServlet.init(); } } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { if (Config.getValue(ConfigValues.HystrixMonitoringEnabled)) { hystrixMetricsStreamServlet.service(req, res); } else { super.service(req, res); } } @Override public void destroy() { if (Config.getValue(ConfigValues.HystrixMonitoringEnabled)) { hystrixMetricsStreamServlet.destroy(); } } }