亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stdschedulerfactory.java

?? Java中非常實用流控制工具
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/* 
 * Copyright 2004-2005 OpenSymphony 
 * 
 * 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.
 * 
 */

/*
 * Previously Copyright (c) 2001-2004 James House
 */
package org.quartz.impl;

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.security.AccessControlException;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Iterator;
import java.util.Locale;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobListener;
import org.quartz.Scheduler;
import org.quartz.SchedulerConfigException;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.TriggerListener;
import org.quartz.core.JobRunShellFactory;
import org.quartz.core.QuartzScheduler;
import org.quartz.core.QuartzSchedulerResources;
import org.quartz.core.SchedulingContext;
import org.quartz.ee.jta.JTAJobRunShellFactory;
import org.quartz.ee.jta.UserTransactionHelper;
import org.quartz.impl.jdbcjobstore.JobStoreSupport;
import org.quartz.impl.jdbcjobstore.Semaphore;
import org.quartz.impl.jdbcjobstore.TablePrefixAware;
import org.quartz.simpl.RAMJobStore;
import org.quartz.simpl.SimpleThreadPool;
import org.quartz.spi.ClassLoadHelper;
import org.quartz.spi.InstanceIdGenerator;
import org.quartz.spi.JobFactory;
import org.quartz.spi.JobStore;
import org.quartz.spi.SchedulerPlugin;
import org.quartz.spi.ThreadPool;
import org.quartz.utils.ConnectionProvider;
import org.quartz.utils.DBConnectionManager;
import org.quartz.utils.JNDIConnectionProvider;
import org.quartz.utils.PoolingConnectionProvider;
import org.quartz.utils.PropertiesParser;

/**
 * <p>
 * An implementation of <code>{@link org.quartz.SchedulerFactory}</code> that
 * does all of its work of creating a <code>QuartzScheduler</code> instance
 * based on the contenents of a <code>Properties</code> file.
 * </p>
 * 
 * <p>
 * By default a properties file named "quartz.properties" is loaded from the
 * 'current working directory'. If that fails, then the "quartz.properties"
 * file located (as a resource) in the org/quartz package is loaded. If you
 * wish to use a file other than these defaults, you must define the system
 * property 'org.quartz.properties' to point to the file you want.
 * </p>
 * 
 * <p>
 * See the sample properties files that are distributed with Quartz for
 * information about the various settings available within the file.
 * </p>
 * 
 * <p>
 * Alternatively, you can explicitly initialize the factory by calling one of
 * the <code>initialize(xx)</code> methods before calling <code>getScheduler()</code>.
 * </p>
 * 
 * <p>
 * Instances of the specified <code>{@link org.quartz.spi.JobStore}</code>,
 * <code>{@link org.quartz.spi.ThreadPool}</code>, classes will be created
 * by name, and then any additional properties specified for them in the config
 * file will be set on the instance by calling an equivalent 'set' method. For
 * example if the properties file contains the property 
 * 'org.quartz.jobStore.myProp = 10' then after the JobStore class has been 
 * instantiated, the method 'setMyProp()' will be called on it. Type conversion 
 * to primitive Java types (int, long, float, double, boolean, and String) are 
 * performed before calling the property's setter method.
 * </p>
 * 
 * @author James House
 * @author Anthony Eden
 * @author Mohammad Rezaei
 */
public class StdSchedulerFactory implements SchedulerFactory {

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Constants.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    public static final String PROPERTIES_FILE = "org.quartz.properties";

    public static final String PROP_SCHED_INSTANCE_NAME = "org.quartz.scheduler.instanceName";

    public static final String PROP_SCHED_INSTANCE_ID = "org.quartz.scheduler.instanceId";

    public static final String PROP_SCHED_INSTANCE_ID_GENERATOR_PREFIX = "org.quartz.scheduler.instanceIdGenerator";
    
    public static final String PROP_SCHED_INSTANCE_ID_GENERATOR_CLASS = 
        PROP_SCHED_INSTANCE_ID_GENERATOR_PREFIX + ".class";
    
    public static final String PROP_SCHED_THREAD_NAME = "org.quartz.scheduler.threadName";

    public static final String PROP_SCHED_JMX_EXPORT = "org.quartz.scheduler.jmx.export";
    
    public static final String PROP_SCHED_JMX_PROXY = "org.quartz.scheduler.jmx.proxy";

    public static final String PROP_SCHED_JMX_PROXY_CLASS = "org.quartz.scheduler.jmx.proxy.class";

    public static final String PROP_SCHED_JMX_OBJECT_NAME = "org.quartz.scheduler.jmx.objectName";

    public static final String PROP_SCHED_RMI_EXPORT = "org.quartz.scheduler.rmi.export";

    public static final String PROP_SCHED_RMI_PROXY = "org.quartz.scheduler.rmi.proxy";

    public static final String PROP_SCHED_RMI_HOST = "org.quartz.scheduler.rmi.registryHost";

    public static final String PROP_SCHED_RMI_PORT = "org.quartz.scheduler.rmi.registryPort";

    public static final String PROP_SCHED_RMI_SERVER_PORT = "org.quartz.scheduler.rmi.serverPort";

    public static final String PROP_SCHED_RMI_CREATE_REGISTRY = "org.quartz.scheduler.rmi.createRegistry";

    public static final String PROP_SCHED_RMI_BIND_NAME = "org.quartz.scheduler.rmi.bindName";

    public static final String PROP_SCHED_WRAP_JOB_IN_USER_TX = "org.quartz.scheduler.wrapJobExecutionInUserTransaction";

    public static final String PROP_SCHED_USER_TX_URL = "org.quartz.scheduler.userTransactionURL";

    public static final String PROP_SCHED_IDLE_WAIT_TIME = "org.quartz.scheduler.idleWaitTime";

    public static final String PROP_SCHED_DB_FAILURE_RETRY_INTERVAL = "org.quartz.scheduler.dbFailureRetryInterval";

    public static final String PROP_SCHED_MAKE_SCHEDULER_THREAD_DAEMON = "org.quartz.scheduler.makeSchedulerThreadDaemon";

    public static final String PROP_SCHED_SCHEDULER_THREADS_INHERIT_CONTEXT_CLASS_LOADER_OF_INITIALIZING_THREAD = "org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer";

    public static final String PROP_SCHED_CLASS_LOAD_HELPER_CLASS = "org.quartz.scheduler.classLoadHelper.class";

    public static final String PROP_SCHED_JOB_FACTORY_CLASS = "org.quartz.scheduler.jobFactory.class";

    public static final String PROP_SCHED_JOB_FACTORY_PREFIX = "org.quartz.scheduler.jobFactory";

    public static final String PROP_SCHED_CONTEXT_PREFIX = "org.quartz.context.key";

    public static final String PROP_THREAD_POOL_PREFIX = "org.quartz.threadPool";

    public static final String PROP_THREAD_POOL_CLASS = "org.quartz.threadPool.class";

    public static final String PROP_JOB_STORE_PREFIX = "org.quartz.jobStore";

    public static final String PROP_JOB_STORE_LOCK_HANDLER_PREFIX = PROP_JOB_STORE_PREFIX + ".lockHandler";
    
    public static final String PROP_JOB_STORE_LOCK_HANDLER_CLASS = PROP_JOB_STORE_LOCK_HANDLER_PREFIX + ".class";

    public static final String PROP_TABLE_PREFIX = "tablePrefix";

    public static final String PROP_JOB_STORE_CLASS = "org.quartz.jobStore.class";

    public static final String PROP_JOB_STORE_USE_PROP = "org.quartz.jobStore.useProperties";

    public static final String PROP_DATASOURCE_PREFIX = "org.quartz.dataSource";

    public static final String PROP_CONNECTION_PROVIDER_CLASS = "connectionProvider.class";

    public static final String PROP_DATASOURCE_DRIVER = "driver";

    public static final String PROP_DATASOURCE_URL = "URL";

    public static final String PROP_DATASOURCE_USER = "user";

    public static final String PROP_DATASOURCE_PASSWORD = "password";

    public static final String PROP_DATASOURCE_MAX_CONNECTIONS = "maxConnections";

    public static final String PROP_DATASOURCE_VALIDATION_QUERY = "validationQuery";

    public static final String PROP_DATASOURCE_JNDI_URL = "jndiURL";

    public static final String PROP_DATASOURCE_JNDI_ALWAYS_LOOKUP = "jndiAlwaysLookup";

    public static final String PROP_DATASOURCE_JNDI_INITIAL = "java.naming.factory.initial";

    public static final String PROP_DATASOURCE_JNDI_PROVDER = "java.naming.provider.url";

    public static final String PROP_DATASOURCE_JNDI_PRINCIPAL = "java.naming.security.principal";

    public static final String PROP_DATASOURCE_JNDI_CREDENTIALS = "java.naming.security.credentials";

    public static final String PROP_PLUGIN_PREFIX = "org.quartz.plugin";

    public static final String PROP_PLUGIN_CLASS = "class";

    public static final String PROP_JOB_LISTENER_PREFIX = "org.quartz.jobListener";

    public static final String PROP_TRIGGER_LISTENER_PREFIX = "org.quartz.triggerListener";

    public static final String PROP_LISTENER_CLASS = "class";

    public static final String DEFAULT_INSTANCE_ID = "NON_CLUSTERED";

    public static final String AUTO_GENERATE_INSTANCE_ID = "AUTO";

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Data members.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    private SchedulerException initException = null;

    private String propSrc = null;

    private PropertiesParser cfg;

    private final Log log = LogFactory.getLog(getClass());

    //  private Scheduler scheduler;

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Constructors.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    /**
     * Create an uninitialized StdSchedulerFactory.
     */
    public StdSchedulerFactory() {
    }

    /**
     * Create a StdSchedulerFactory that has been initialized via
     * <code>{@link #initialize(Properties)}</code>.
     * 
     * @see #initialize(Properties)
     */
    public StdSchedulerFactory(Properties props) throws SchedulerException {
        initialize(props);
    }

    /**
     * Create a StdSchedulerFactory that has been initialized via
     * <code>{@link #initialize(String)}</code>.
     * 
     * @see #initialize(String)
     */
    public StdSchedulerFactory(String fileName) throws SchedulerException {
        initialize(fileName);
    }

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Interface.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    public Log getLog() {
        return log;
    }

    /**
     * <p>
     * Initialize the <code>{@link org.quartz.SchedulerFactory}</code> with
     * the contents of a <code>Properties</code> file and overriding System 
     * properties.
     * </p>
     * 
     * <p>
     * By default a properties file named "quartz.properties" is loaded from
     * the 'current working directory'. If that fails, then the
     * "quartz.properties" file located (as a resource) in the org/quartz
     * package is loaded. If you wish to use a file other than these defaults,
     * you must define the system property 'org.quartz.properties' to point to
     * the file you want.
     * </p>
     * 
     * <p>
     * System properties (environment variables, and -D definitions on the
     * command-line when running the JVM) override any properties in the
     * loaded file.  For this reason, you may want to use a different initialize()
     * method if your application security policy prohibits access to 
     * <code>{@link java.lang.System#getProperties()}</code>.
     * </p>
     */
    public void initialize() throws SchedulerException {
        // short-circuit if already initialized
        if (cfg != null) {
            return;
        }
        if (initException != null) {
            throw initException;
        }

        String requestedFile = System.getProperty(PROPERTIES_FILE);
        String propFileName = requestedFile != null ? requestedFile
                : "quartz.properties";
        File propFile = new File(propFileName);

        Properties props = new Properties();

        InputStream in = null;

        try {
            if (propFile.exists()) {
                try {
                    if (requestedFile != null) {
                        propSrc = "specified file: '" + requestedFile + "'";
                    } else {
                        propSrc = "default file in current working dir: 'quartz.properties'";
                    }
    
                    in = new BufferedInputStream(new FileInputStream(propFileName));
                    props.load(in);
    
                } catch (IOException ioe) {
                    initException = new SchedulerException("Properties file: '"

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国中文字幕2020精品| 成人av资源在线| 国产精品色在线观看| 一本在线高清不卡dvd| 麻豆成人免费电影| 一区二区欧美精品| 国产午夜亚洲精品羞羞网站| 538prom精品视频线放| 成人污视频在线观看| 午夜激情一区二区| 综合欧美亚洲日本| 久久女同精品一区二区| 欧美日韩电影一区| 91啦中文在线观看| 国产精品99久久久久久宅男| 亚洲午夜精品久久久久久久久| 国产亚洲欧美激情| 日韩欧美高清一区| 在线观看免费成人| 91丨九色丨蝌蚪丨老版| 国产成人在线观看| 激情六月婷婷综合| 肉肉av福利一精品导航| 亚洲精品成a人| 中文字幕日韩一区二区| 国产亚洲精品久| 精品日韩欧美在线| 91精选在线观看| 色偷偷久久人人79超碰人人澡| 国产精华液一区二区三区| 久久99精品视频| 免费欧美日韩国产三级电影| 亚洲成人7777| 亚洲第一成年网| 亚洲成人动漫在线免费观看| 亚洲一级二级三级| 一区二区三区四区激情 | 亚洲一区在线免费观看| 国产精品不卡一区二区三区| 国产亚洲一二三区| 久久品道一品道久久精品| 91女厕偷拍女厕偷拍高清| av网站免费线看精品| 91香蕉视频污| 日本丰满少妇一区二区三区| 91在线精品一区二区三区| 99国产精品久久久久久久久久| 99久久综合99久久综合网站| av动漫一区二区| 日本韩国视频一区二区| 在线日韩国产精品| 欧美日韩一区三区| 欧美人与z0zoxxxx视频| 91精品中文字幕一区二区三区| 欧美一区二区福利在线| 精品成人在线观看| 国产亚洲午夜高清国产拍精品| 国产女人18毛片水真多成人如厕| 欧美高清在线一区| 中文字幕综合网| 亚洲午夜视频在线观看| 天堂影院一区二区| 久久99久久99精品免视看婷婷 | 国产老女人精品毛片久久| 成人久久18免费网站麻豆| 99久久精品国产毛片| 在线欧美一区二区| 日韩一区二区三区在线| 久久精品亚洲一区二区三区浴池| 国产日韩欧美a| 亚洲精品欧美综合四区| 天天综合色天天综合| 麻豆精品一区二区三区| 成人福利视频网站| 欧美性大战久久久| 精品国产1区二区| 综合亚洲深深色噜噜狠狠网站| 天天影视色香欲综合网老头| 精品在线播放免费| eeuss影院一区二区三区| 欧美三级电影网站| 精品国产1区二区| 亚洲综合网站在线观看| 另类小说色综合网站| 97久久精品人人做人人爽50路| 欧美日本韩国一区二区三区视频| 久久久综合视频| 亚洲午夜av在线| 国产精品一区二区黑丝| 欧美日韩你懂得| 日本一区二区不卡视频| 丝袜亚洲另类欧美综合| 国产酒店精品激情| 欧美色国产精品| 国产精品入口麻豆九色| 日韩成人免费在线| 97久久精品人人澡人人爽| 欧美一级精品在线| 一区二区三区不卡视频| 国产麻豆一精品一av一免费| 欧美最猛黑人xxxxx猛交| 26uuuu精品一区二区| 亚洲777理论| 91在线免费播放| 久久久久高清精品| 男男视频亚洲欧美| 在线欧美小视频| 国产精品系列在线| 久久99久久99精品免视看婷婷| 欧美色偷偷大香| 亚洲精品久久久蜜桃| 国产精品456露脸| 日韩一区二区在线免费观看| 亚洲免费在线观看视频| 粉嫩嫩av羞羞动漫久久久| 日韩西西人体444www| 亚洲一区二区3| 91麻豆福利精品推荐| 中文字幕av免费专区久久| 成人综合婷婷国产精品久久蜜臀 | 成人app网站| 久久色在线观看| 麻豆精品一区二区综合av| 欧美美女bb生活片| 亚洲综合在线电影| 91小视频在线免费看| 国产精品三级电影| 国产成人在线色| 国产欧美一二三区| 国内外成人在线| 欧美tickling网站挠脚心| 日产欧产美韩系列久久99| 欧美日韩久久一区二区| 亚洲综合精品久久| 在线观看成人免费视频| 亚洲欧美激情插| 色哟哟在线观看一区二区三区| 亚洲日本护士毛茸茸| 91在线一区二区三区| 亚洲视频一二区| 欧美在线观看一二区| 亚洲风情在线资源站| 欧美日韩你懂的| 麻豆精品国产传媒mv男同| 日韩精品中文字幕一区二区三区 | 中文字幕一区二区三区在线观看 | 亚洲va天堂va国产va久| 欧美日韩国产一级| 奇米888四色在线精品| 欧美一区二区三区四区五区| 久久超级碰视频| 国产日本欧洲亚洲| av成人老司机| 亚洲第一主播视频| 欧美一区二区视频网站| 看电视剧不卡顿的网站| 日韩亚洲欧美成人一区| 免费观看一级欧美片| 久久亚洲一级片| 成人午夜视频免费看| 国产精品午夜春色av| 日本大胆欧美人术艺术动态| 精品国产在天天线2019| 久久精品国产**网站演员| 日韩精品一区二区三区swag| 久久电影网电视剧免费观看| 久久噜噜亚洲综合| 成人av网在线| 亚洲免费av高清| 欧美成人video| 国产精品77777竹菊影视小说| 国产精品素人视频| 97精品视频在线观看自产线路二| 亚洲成av人片在线| 欧美一级二级在线观看| 激情图片小说一区| 国产精品福利影院| 在线看日本不卡| 国产精品中文字幕一区二区三区| 国产精品伦一区| 欧美又粗又大又爽| 免费一级欧美片在线观看| 亚洲欧美在线观看| 欧美日产在线观看| 国产精品69久久久久水密桃| 中文字幕亚洲一区二区av在线| 欧美午夜一区二区| 麻豆成人久久精品二区三区红| 欧美极品另类videosde| 欧美日韩国产片| 国产成人综合视频| 国产精品综合av一区二区国产馆| 国产精品久久久久久妇女6080| 欧美在线观看你懂的| 麻豆视频一区二区| 亚洲欧洲成人精品av97| 亚洲精品在线三区| 91久久精品一区二区三区| 另类小说欧美激情| 国产欧美一区二区三区鸳鸯浴|