io.logspace.agent.shaded.quartz.simpl.ZeroSizeThreadPool Maven / Gradle / Ivy
/*
* Copyright 2001-2009 Terracotta, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
*/
package io.logspace.agent.shaded.quartz.simpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.logspace.agent.shaded.quartz.SchedulerConfigException;
import io.logspace.agent.shaded.quartz.spi.ThreadPool;
/**
*
* This is class is a simple implementation of a zero size thread pool, based on the
* {@link io.logspace.agent.shaded.quartz.spi.ThreadPool}
interface.
*
*
*
* The pool has zero Thread
s and does not grow or shrink based on demand.
* Which means it is obviously not useful for most scenarios. When it may be useful
* is to prevent creating any worker threads at all - which may be desirable for
* the sole purpose of preserving system resources in the case where the scheduler
* instance only exists in order to schedule jobs, but which will never execute
* jobs (e.g. will never have start() called on it).
*
*
*
*
*
* @author Wayne Fay
*/
public class ZeroSizeThreadPool implements ThreadPool {
/*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* Data members.
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
private final Logger log = LoggerFactory.getLogger(getClass());
/*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* Constructors.
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/**
*
* Create a new ZeroSizeThreadPool
.
*
*/
public ZeroSizeThreadPool() {
}
/*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* Interface.
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
public Logger getLog() {
return log;
}
public int getPoolSize() {
return 0;
}
public void initialize() throws SchedulerConfigException {
}
public void shutdown() {
shutdown(true);
}
public void shutdown(boolean waitForJobsToComplete) {
getLog().debug("shutdown complete");
}
public boolean runInThread(Runnable runnable) {
throw new UnsupportedOperationException("This ThreadPool should not be used on Scheduler instances that are start()ed.");
}
public int blockForAvailableThreads() {
throw new UnsupportedOperationException("This ThreadPool should not be used on Scheduler instances that are start()ed.");
}
public void setInstanceId(String schedInstId) {
}
public void setInstanceName(String schedName) {
}
}