/* * Copyright (c) 2014 EMC Corporation * All Rights Reserved */ package com.emc.storageos.api.service.impl.resource.utils; import java.util.concurrent.ExecutorService; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.services.util.NamedThreadPoolExecutor; public abstract class AbstractDbRetriever { private static final int DEFAULT_THREAD_COUNT = 10; private int queryThreadCount = DEFAULT_THREAD_COUNT; // dbClient as a member so it can be injected from Spring context, and // also enable init tests injecting a dummy dbClient implementation. protected DbClient dbClient = null; private ExecutorService dbRetrieverPool = null; public void setQueryThreadCount(int queryThreadCount) { this.queryThreadCount = queryThreadCount; } public void setDbClient(DbClient dbClient) { this.dbClient = dbClient; } protected ExecutorService getThreadPool() { if (dbRetrieverPool == null) { dbRetrieverPool = new NamedThreadPoolExecutor( this.getClass().getSimpleName(), queryThreadCount); } return dbRetrieverPool; } }