Source:
public AzureBlobSystemProducer(String systemName, AzureBlobConfig config, MetricsRegistry metricsRegistry) { Preconditions.checkNotNull(systemName, "System name can not be null when creating AzureBlobSystemProducer"); Preconditions.checkNotNull(config, "Config can not be null when creating AzureBlobSystemProducer"); Preconditions.checkNotNull(metricsRegistry, "Metrics registry can not be null when creating AzureBlobSystemProducer"); System.setProperty(Configuration.PROPERTY_AZURE_LOG_LEVEL, "1"); this.systemName = systemName; this.config = config; String writerFactoryClassName = this.config.getAzureBlobWriterFactoryClassName(this.systemName); try { this.writerFactory = (AzureBlobWriterFactory) Class.forName(writerFactoryClassName).newInstance(); } catch (Exception e) { throw new SystemProducerException("Could not create writer factory with name " + writerFactoryClassName, e); } this.flushTimeoutMs = this.config.getFlushTimeoutMs(this.systemName); this.closeTimeout = this.config.getCloseTimeoutMs(this.systemName); this.blockFlushThresholdSize = this.config.getMaxFlushThresholdSize(this.systemName); int asyncBlobThreadPoolCount = this.config.getAzureBlobThreadPoolCount(this.systemName); int blockingQueueSize = this.config.getBlockingQueueSizeOrDefault(this.systemName, asyncBlobThreadPoolCount * 2); LOG.info("SystemName: block flush size:{}", systemName, this.blockFlushThresholdSize); LOG.info("SystemName: thread count:{}", systemName, asyncBlobThreadPoolCount); BlockingQueue<Runnable> linkedBlockingDeque = new LinkedBlockingDeque<>(blockingQueueSize); this.asyncBlobThreadPool = new ThreadPoolExecutor(asyncBlobThreadPoolCount, asyncBlobThreadPoolCount, 60, TimeUnit.SECONDS, linkedBlockingDeque, new ThreadPoolExecutor.CallerRunsPolicy()); this.writerMap = new ConcurrentHashMap<>(); this.metrics = new AzureBlobSystemProducerMetrics(systemName, config.getAzureAccountName(systemName), metricsRegistry); }

Target:
public AzureBlobSystemProducer(String systemName, AzureBlobConfig config, MetricsRegistry metricsRegistry) { Preconditions.checkNotNull(systemName, "System name can not be null when creating AzureBlobSystemProducer"); Preconditions.checkNotNull(config, "Config can not be null when creating AzureBlobSystemProducer"); Preconditions.checkNotNull(metricsRegistry, "Metrics registry can not be null when creating AzureBlobSystemProducer"); System.setProperty(Configuration.PROPERTY_AZURE_LOG_LEVEL, "1"); this.systemName = systemName; this.config = config; String writerFactoryClassName = this.config.getAzureBlobWriterFactoryClassName(this.systemName); try { this.writerFactory = (AzureBlobWriterFactory) Class.forName(writerFactoryClassName).newInstance(); } catch (Exception e) { throw new SystemProducerException("Could not create writer factory with name " + writerFactoryClassName, e); } this.flushTimeoutMs = this.config.getFlushTimeoutMs(this.systemName); this.closeTimeout = this.config.getCloseTimeoutMs(this.systemName); this.blockFlushThresholdSize = this.config.getMaxFlushThresholdSize(this.systemName); int asyncBlobThreadPoolCount = this.config.getAzureBlobThreadPoolCount(this.systemName); int blockingQueueSize = this.config.getBlockingQueueSize(this.systemName); LOG.info("SystemName: block flush size:{}", systemName, this.blockFlushThresholdSize); LOG.info("SystemName: thread count:{}", systemName, asyncBlobThreadPoolCount); BlockingQueue<Runnable> linkedBlockingDeque = new LinkedBlockingDeque<>(blockingQueueSize); this.asyncBlobThreadPool = new ThreadPoolExecutor(asyncBlobThreadPoolCount, asyncBlobThreadPoolCount, 60, TimeUnit.SECONDS, linkedBlockingDeque, new ThreadPoolExecutor.CallerRunsPolicy()); this.writerMap = new ConcurrentHashMap<>(); this.metrics = new AzureBlobSystemProducerMetrics(systemName, config.getAzureAccountName(systemName), metricsRegistry); }