package org.radargun.stages.cache.background; import java.util.List; import org.radargun.config.Stage; import org.radargun.stages.cache.test.LoadStage; /** * @author Matej Cimbora <mcimbora@redhat.com> */ @Stage(doc = "Allows to load data into a cache in the background, while other stages may take place. To force process " + "termination, use BackgroundLoadDataStopStage.") public class BackgroundLoadStartStage extends LoadStage { private static final String BACKGROUND_LOADERS = "BackgroundLoaders"; @Override protected List<Loader> startLoaders() { List<Loader> newLoaders = super.startLoaders(); List<Thread> previousLoaders = (List<Thread>) slaveState.get(BACKGROUND_LOADERS); if (previousLoaders == null) { slaveState.put(BACKGROUND_LOADERS, newLoaders); } else { previousLoaders.addAll(newLoaders); } return newLoaders; } @Override protected void stopLoaders(List<Loader> loaders) throws Exception { // do nothing } }