class ExecutorServiceProducer {

    protected ExecutorService buildFixedThreadPoolExecutorService(String key) {
        String stringProperty = System.getProperty(key);
        int threadLimit = stringProperty == null ? 0 : toInteger(stringProperty);
        if (threadLimit > 0) {
            return Executors.newFixedThreadPool(threadLimit,
                                                new DescriptiveThreadFactory());
        } else {
            return Executors.newCachedThreadPool(new DescriptiveThreadFactory());
        }
    }

    public  ExecutorServiceProducer();

}