All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.helger.quartz.spi.ISchedulerPlugin Maven / Gradle / Ivy

/**
 * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
 *
 * Copyright (C) 2016-2020 Philip Helger (www.helger.com)
 * philip[at]helger[dot]com
 *
 * 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 com.helger.quartz.spi;

import java.io.Serializable;

import com.helger.quartz.IScheduler;
import com.helger.quartz.SchedulerException;

/**
 * 

* Provides an interface for a class to become a "plugin" to Quartz. *

*

* Plugins can do virtually anything you wish, though the most interesting ones * will obviously interact with the scheduler in some way - either actively: by * invoking actions on the scheduler, or passively: by being a * JobListener, TriggerListener, and/or * SchedulerListener. *

*

* If you use {@link com.helger.quartz.impl.StdSchedulerFactory} to * initialize your Scheduler, it can also create and initialize your plugins - * look at the configuration docs for details. *

*

* If you need direct access your plugin, you can have it explicitly put a * reference to itself in the Scheduler's * SchedulerContext as part of its * {@link #initialize(String, IScheduler, IClassLoadHelper)} * method. *

* * @author James House */ public interface ISchedulerPlugin extends Serializable { /** *

* Called during creation of the Scheduler in order to give the * SchedulerPlugin a chance to initialize. *

*

* At this point, the Scheduler's JobStore is not yet * initialized. *

*

* If you need direct access your plugin, for example during Job * execution, you can have this method explicitly put a reference to this * plugin in the Scheduler's SchedulerContext. *

* * @param name * The name by which the plugin is identified. * @param scheduler * The scheduler to which the plugin is registered. * @param loadHelper * The classLoadHelper the SchedulerFactory is actually * using * @throws com.helger.quartz.SchedulerConfigException * if there is an error initializing. */ void initialize (String name, IScheduler scheduler, IClassLoadHelper loadHelper) throws SchedulerException; /** *

* Called when the associated Scheduler is started, in order to * let the plug-in know it can now make calls into the scheduler if it needs * to. *

*/ void start (); /** *

* Called in order to inform the SchedulerPlugin that it should * free up all of it's resources because the scheduler is shutting down. *

*/ void shutdown (); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy