Source:
<code>public AzkabanExecutorServer(Props props) throws Exception { this.props = props; int portNumber = props.getInt("executor.port", DEFAULT_PORT_NUMBER); int maxThreads = props.getInt("executor.maxThreads", DEFAULT_THREAD_NUMBER); server = new Server(portNumber); QueuedThreadPool httpThreadPool = new QueuedThreadPool(maxThreads); server.setThreadPool(httpThreadPool); <START> boolean isStatsOn = props.getBoolean("executor.connector.stats", Boolean.TRUE); <END> logger.info("Setting up connector with stats on: " + isStatsOn); for (Connector connector : server.getConnectors()) { connector.setStatsOn(isStatsOn); } Context root = new Context(server, "/", Context.SESSIONS); root.setMaxFormContentSize(MAX_FORM_CONTENT_SIZE); root.addServlet(new ServletHolder(new ExecutorServlet()), "/executor"); root.addServlet(new ServletHolder(new JMXHttpServlet()), "/jmx"); root.setAttribute(AzkabanServletContextListener.AZKABAN_SERVLET_CONTEXT_KEY, this); executionLoader = createExecLoader(props); projectLoader = createProjectLoader(props); runnerManager = new FlowRunnerManager(props, executionLoader, projectLoader, this.getClass().getClassLoader()); String globalPropsPath = props.getString("executor.global.properties", null); if (globalPropsPath == null) { executorGlobalProps = new Props(); } else { executorGlobalProps = new Props(null, globalPropsPath); } runnerManager.setGlobalProps(executorGlobalProps); configureMBeanServer(); try { server.start(); } catch (Exception e) { logger.warn(e); Utils.croak(e.getMessage(), 1); } logger.info("Azkaban Executor Server started on port " + portNumber); }</code><technical_language>a good idea add "executor.connector.stats" template azkaban.properties files in src/package/{solo,web,exec}server/conf/azkaban.properties users this is configurable</technical_language>

Target:
public AzkabanExecutorServer(Props props) throws Exception { this.props = props; int portNumber = props.getInt("executor.port", DEFAULT_PORT_NUMBER); int maxThreads = props.getInt("executor.maxThreads", DEFAULT_THREAD_NUMBER); server = new Server(portNumber); QueuedThreadPool httpThreadPool = new QueuedThreadPool(maxThreads); server.setThreadPool(httpThreadPool); boolean isStatsOn = props.getBoolean("executor.connector.stats", true); logger.info("Setting up connector with stats on: " + isStatsOn); for (Connector connector : server.getConnectors()) { connector.setStatsOn(isStatsOn); } Context root = new Context(server, "/", Context.SESSIONS); root.setMaxFormContentSize(MAX_FORM_CONTENT_SIZE); root.addServlet(new ServletHolder(new ExecutorServlet()), "/executor"); root.addServlet(new ServletHolder(new JMXHttpServlet()), "/jmx"); root.setAttribute(AzkabanServletContextListener.AZKABAN_SERVLET_CONTEXT_KEY, this); executionLoader = createExecLoader(props); projectLoader = createProjectLoader(props); runnerManager = new FlowRunnerManager(props, executionLoader, projectLoader, this.getClass().getClassLoader()); String globalPropsPath = props.getString("executor.global.properties", null); if (globalPropsPath == null) { executorGlobalProps = new Props(); } else { executorGlobalProps = new Props(null, globalPropsPath); } runnerManager.setGlobalProps(executorGlobalProps); configureMBeanServer(); try { server.start(); } catch (Exception e) { logger.warn(e); Utils.croak(e.getMessage(), 1); } logger.info("Azkaban Executor Server started on port " + portNumber); }