package org.threadly.concurrent.wrapper.traceability; import org.threadly.concurrent.PrioritySchedulerTest.PrioritySchedulerFactory; import org.threadly.concurrent.SchedulerService; import org.threadly.concurrent.SchedulerServiceInterfaceTest; import org.threadly.concurrent.SubmitterExecutor; import org.threadly.concurrent.SubmitterScheduler; @SuppressWarnings("javadoc") public class ThreadRenamingSchedulerServiceTest extends SchedulerServiceInterfaceTest { @Override protected SchedulerServiceFactory getSchedulerServiceFactory() { return new ThreadRenamingPoolWrapperFactory(); } @Override protected boolean isSingleThreaded() { return false; } private static class ThreadRenamingPoolWrapperFactory implements SchedulerServiceFactory { private final PrioritySchedulerFactory schedulerFactory = new PrioritySchedulerFactory(); @Override public SubmitterExecutor makeSubmitterExecutor(int poolSize, boolean prestartIfAvailable) { return makeSubmitterScheduler(poolSize, prestartIfAvailable); } @Override public SubmitterScheduler makeSubmitterScheduler(int poolSize, boolean prestartIfAvailable) { return makeSchedulerService(poolSize, prestartIfAvailable); } @Override public SchedulerService makeSchedulerService(int poolSize, boolean prestartIfAvailable) { SchedulerService scheduler = schedulerFactory.makeSchedulerService(poolSize, prestartIfAvailable); return new ThreadRenamingSchedulerService(scheduler, "foo", false); } @Override public void shutdown() { schedulerFactory.shutdown(); } } }