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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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: '"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级三级三级爽爽爽| 国产真实乱子伦精品视频| 久久一夜天堂av一区二区三区| 成人黄色软件下载| 色天使色偷偷av一区二区| 在线观看免费视频综合| 日韩一区二区三区在线观看| www精品美女久久久tv| 精品国产91久久久久久久妲己| 精品成人a区在线观看| 国产精品国产三级国产专播品爱网| 中文字幕第一页久久| 亚洲成人动漫在线免费观看| 久久99久久久久| 在线视频综合导航| 制服丝袜激情欧洲亚洲| 国产精品精品国产色婷婷| 亚洲一区在线免费观看| 激情成人综合网| 欧美私模裸体表演在线观看| 欧美日韩一二三| 国产三级三级三级精品8ⅰ区| 中文字幕乱码日本亚洲一区二区| 亚洲蜜臀av乱码久久精品| 日韩影院免费视频| 91原创在线视频| 欧美变态口味重另类| 亚洲精品视频观看| 色婷婷综合在线| 26uuu久久综合| 美女一区二区三区| 国产麻豆91精品| 国产精品综合一区二区三区| 欧美丰满美乳xxx高潮www| 国产精品久久久一本精品| 日韩二区三区在线观看| 欧美一区二区视频网站| 亚洲国产精品久久久久婷婷884| 99国产精品久久久久久久久久| 久久嫩草精品久久久久| 国产精品中文字幕日韩精品| 欧美zozozo| 久久精品99国产精品日本| 欧美一区二区啪啪| 一区二区三区精品视频在线| 色婷婷久久99综合精品jk白丝| 一色桃子久久精品亚洲| 成人手机在线视频| 亚洲男人的天堂网| 欧美日韩一区二区三区四区五区 | 久久综合资源网| 国产精品一级在线| 亚洲男人的天堂在线aⅴ视频| 精品视频一区 二区 三区| 亚洲成人免费看| 久久久久久久久久久久久夜| av激情亚洲男人天堂| 亚洲成人在线免费| 久久久国际精品| 欧美午夜精品免费| 国产制服丝袜一区| 亚洲成av人综合在线观看| 6080午夜不卡| 成人午夜在线免费| 天堂va蜜桃一区二区三区漫画版| 欧美成人一区二区三区片免费| 懂色av一区二区三区免费观看| 一区二区三区在线播放| 91精品国产免费| 91视频xxxx| 成人丝袜18视频在线观看| 日韩不卡手机在线v区| 亚洲老司机在线| 国产精品理论片在线观看| 日韩欧美中文一区二区| 欧洲精品在线观看| eeuss鲁一区二区三区| 成人在线一区二区三区| 国产一区二区三区黄视频| 免费高清视频精品| 极品美女销魂一区二区三区 | 欧美伦理电影网| 色av综合在线| 91毛片在线观看| 成人福利电影精品一区二区在线观看| 国产真实乱对白精彩久久| 蜜臀va亚洲va欧美va天堂| 亚洲黄色小说网站| 亚洲色欲色欲www| 国产精品高清亚洲| 亚洲欧美另类久久久精品| 国产精品久久久久久久久动漫| 国产午夜精品在线观看| 久久精品人人做人人综合| 欧美经典一区二区三区| 国产精品网站导航| 亚洲综合激情另类小说区| 亚洲自拍都市欧美小说| 奇米综合一区二区三区精品视频 | 91免费观看在线| 欧美日韩另类一区| 欧美成人乱码一区二区三区| 国产亚洲成aⅴ人片在线观看| 国产精品超碰97尤物18| 亚洲男同性视频| 久久99久久99| 欧美中文一区二区三区| 久久久久久久久伊人| 亚洲国产精品麻豆| 99久久综合色| 久久免费看少妇高潮| 午夜伦欧美伦电影理论片| 国产精品一区一区三区| 欧美日韩久久久| 亚洲电影一级片| 97久久精品人人做人人爽50路| 久久精品夜色噜噜亚洲aⅴ| 亚洲午夜在线视频| 色婷婷精品久久二区二区蜜臂av | 成人在线视频一区二区| 日韩精品一区二区三区在线播放| 一区二区三区中文免费| 91亚洲精品久久久蜜桃| 国产精品传媒在线| 国产成都精品91一区二区三| 中文字幕精品一区二区精品绿巨人| 亚洲一级在线观看| 欧美唯美清纯偷拍| 一级女性全黄久久生活片免费| av资源站一区| 亚洲综合区在线| 欧美一区二区久久久| 热久久久久久久| 日韩一区二区三区免费看| 美女mm1313爽爽久久久蜜臀| 久久色中文字幕| 成人h动漫精品一区二| 一区二区在线观看免费| 69成人精品免费视频| 国内精品嫩模私拍在线| 日韩美女精品在线| 欧洲精品视频在线观看| 欧美aaaaa成人免费观看视频| xvideos.蜜桃一区二区| a亚洲天堂av| 美女脱光内衣内裤视频久久网站 | 中文幕一区二区三区久久蜜桃| 欧洲一区二区三区在线| 久久er99精品| 亚洲午夜久久久| 中文字幕一区二区三区在线不卡| 67194成人在线观看| 色综合久久综合中文综合网| 美女一区二区在线观看| 一二三区精品视频| 欧美国产亚洲另类动漫| 91精品国产综合久久国产大片| 国产98色在线|日韩| 免费观看日韩av| 亚洲福利国产精品| 亚洲另类在线视频| 亚洲免费av在线| 17c精品麻豆一区二区免费| 久久色.com| 欧美xxxx在线观看| 欧美一级黄色录像| 精品少妇一区二区三区在线视频| 色综合久久久久| 99视频有精品| 91视频www| 色综合夜色一区| 欧美日韩在线三级| 欧美日本不卡视频| 欧美一区欧美二区| 日韩欧美一区二区三区在线| 国产亚洲自拍一区| 国产丝袜在线精品| 中文字幕一区二区不卡 | 国产不卡高清在线观看视频| 国产成人免费高清| 91免费小视频| 91.xcao| 国产欧美一区二区三区在线老狼 | 91天堂素人约啪| 欧美唯美清纯偷拍| 制服丝袜日韩国产| 中文字幕av一区二区三区免费看 | 欧美一区二区三区在线观看视频 | 99久久精品国产观看| 欧美日韩国产综合视频在线观看| 69精品人人人人| 一区二区三区电影在线播| 美女久久久精品| 色综合天天综合给合国产| www成人在线观看| 性欧美大战久久久久久久久| 盗摄精品av一区二区三区| 欧美狂野另类xxxxoooo| 亚洲色图欧美激情| 国内精品免费**视频|