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

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

?? stdschedulerfactory.java

?? Java中非常實用流控制工具
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                        .setErrorCode(SchedulerException.ERR_BAD_CONFIGURATION);
                throw initException;
            }
            jobListeners[i] = listener;
        }
               
        // Set up any TriggerListeners
        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        String[] triggerListenerNames = cfg.getPropertyGroups(PROP_TRIGGER_LISTENER_PREFIX);
        TriggerListener[] triggerListeners = new TriggerListener[triggerListenerNames.length];
        for (int i = 0; i < triggerListenerNames.length; i++) {
            Properties lp = cfg.getPropertyGroup(PROP_TRIGGER_LISTENER_PREFIX + "."
                    + triggerListenerNames[i], true);
            
            String listenerClass = lp.getProperty(PROP_LISTENER_CLASS, null);

            if (listenerClass == null) {
                initException = new SchedulerException(
                        "TriggerListener class not specified for listener '"
                                + triggerListenerNames[i] + "'",
                        SchedulerException.ERR_BAD_CONFIGURATION);
                throw initException;
            }
            TriggerListener listener = null;
            try {
                listener = (TriggerListener)
                       loadHelper.loadClass(listenerClass).newInstance();
            } catch (Exception e) {
                initException = new SchedulerException(
                        "TriggerListener class '" + listenerClass
                                + "' could not be instantiated.", e);
                initException
                        .setErrorCode(SchedulerException.ERR_BAD_CONFIGURATION);
                throw initException;
            }
            try {
                Method nameSetter = listener.getClass().getMethod("setName", strArg);
                if(nameSetter != null) {
                    nameSetter.invoke(listener, new Object[] {triggerListenerNames[i] } );
                }
                setBeanProps(listener, lp);
            } catch (Exception e) {
                initException = new SchedulerException(
                        "TriggerListener '" + listenerClass
                                + "' props could not be configured.", e);
                initException
                        .setErrorCode(SchedulerException.ERR_BAD_CONFIGURATION);
                throw initException;
            }
            triggerListeners[i] = listener;
        }
                
        
        // Fire everything up
        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        JobRunShellFactory jrsf = null; // Create correct run-shell factory...

        if (userTXLocation != null) {
            UserTransactionHelper.setUserTxLocation(userTXLocation);
        }

        if (wrapJobInTx) {
            jrsf = new JTAJobRunShellFactory();
        } else {
            jrsf = new StdJobRunShellFactory();
        }

        if (autoId) {
            try {
                schedInstId = DEFAULT_INSTANCE_ID;
                if (js instanceof JobStoreSupport) {
                    if(((JobStoreSupport)js).isClustered()) {
                        schedInstId = instanceIdGenerator.generateInstanceId();                    
                    }
                }
            } catch (Exception e) {
                getLog().error("Couldn't generate instance Id!", e);
                throw new IllegalStateException(
                        "Cannot run without an instance id.");
            }
        }

        if (js instanceof JobStoreSupport) {
            JobStoreSupport jjs = (JobStoreSupport)js;
            jjs.setInstanceId(schedInstId);
            jjs.setDbRetryInterval(dbFailureRetry);
            if(threadsInheritInitalizersClassLoader)
            	jjs.setThreadsInheritInitializersClassLoadContext(threadsInheritInitalizersClassLoader);
        }
        
        QuartzSchedulerResources rsrcs = new QuartzSchedulerResources();
        rsrcs.setName(schedName);
        rsrcs.setThreadName(threadName);        
        rsrcs.setInstanceId(schedInstId);
        rsrcs.setJobRunShellFactory(jrsf);
        rsrcs.setMakeSchedulerThreadDaemon(makeSchedulerThreadDaemon);
        rsrcs.setThreadsInheritInitializersClassLoadContext(threadsInheritInitalizersClassLoader);
        rsrcs.setJMXExport(jmxExport);
        rsrcs.setJMXObjectName(jmxObjectName);
        	
        if (rmiExport) {
            rsrcs.setRMIRegistryHost(rmiHost);
            rsrcs.setRMIRegistryPort(rmiPort);
            rsrcs.setRMIServerPort(rmiServerPort);
            rsrcs.setRMICreateRegistryStrategy(rmiCreateRegistry);
            rsrcs.setRMIBindName(rmiBindName);
        }

        rsrcs.setThreadPool(tp);
        if(tp instanceof SimpleThreadPool) {
            ((SimpleThreadPool)tp).setThreadNamePrefix(schedName + "_Worker");
            if(threadsInheritInitalizersClassLoader)
            	((SimpleThreadPool)tp).setThreadsInheritContextClassLoaderOfInitializingThread(threadsInheritInitalizersClassLoader);
        }
        tp.initialize();
        
        rsrcs.setJobStore(js);

        // add plugins
        for (int i = 0; i < plugins.length; i++) {
            rsrcs.addSchedulerPlugin(plugins[i]);
        }

        schedCtxt = new SchedulingContext();
        schedCtxt.setInstanceId(rsrcs.getInstanceId());

        qs = new QuartzScheduler(rsrcs, schedCtxt, idleWaitTime, dbFailureRetry);

        // Create Scheduler ref...
        Scheduler scheduler = instantiate(rsrcs, qs);
        
        // set job factory if specified
        if(jobFactory != null) {
            qs.setJobFactory(jobFactory);
        }

        // Initialize plugins now that we have a Scheduler instance.
        for (int i = 0; i < plugins.length; i++) {
            plugins[i].initialize(pluginNames[i], scheduler);
        }
        
        // add listeners
        for (int i = 0; i < jobListeners.length; i++) {
            qs.addGlobalJobListener(jobListeners[i]);
        }
        for (int i = 0; i < triggerListeners.length; i++) {
            qs.addGlobalTriggerListener(triggerListeners[i]);
        }
        
        // set scheduler context data...
        Iterator itr = schedCtxtProps.keySet().iterator();
        while(itr.hasNext()) {
            String key = (String) itr.next();
            String val = schedCtxtProps.getProperty(key);
            
            scheduler.getContext().put(key, val);
        }
        
        // fire up job store, and runshell factory

        js.initialize(loadHelper, qs.getSchedulerSignaler());

        jrsf.initialize(scheduler, schedCtxt);

        getLog().info(
                "Quartz scheduler '" + scheduler.getSchedulerName()
                        + "' initialized from " + propSrc);

        getLog().info("Quartz scheduler version: " + qs.getVersion());

        // prevents the repository from being garbage collected
        qs.addNoGCObject(schedRep);
        // prevents the db manager from being garbage collected
        if (dbMgr != null) {
            qs.addNoGCObject(dbMgr);
        }

        schedRep.bind(scheduler);

        return scheduler;
    }

    protected Scheduler instantiate(QuartzSchedulerResources rsrcs, QuartzScheduler qs) {
        SchedulingContext schedCtxt = new SchedulingContext();
        schedCtxt.setInstanceId(rsrcs.getInstanceId());
        
        Scheduler scheduler = new StdScheduler(qs, schedCtxt);
        return scheduler;
    }
    

    private void setBeanProps(Object obj, Properties props)
        throws NoSuchMethodException, IllegalAccessException,
            java.lang.reflect.InvocationTargetException,
            IntrospectionException, SchedulerConfigException {
        props.remove("class");

        BeanInfo bi = Introspector.getBeanInfo(obj.getClass());
        PropertyDescriptor[] propDescs = bi.getPropertyDescriptors();
        PropertiesParser pp = new PropertiesParser(props);

        java.util.Enumeration keys = props.keys();
        while (keys.hasMoreElements()) {
            String name = (String) keys.nextElement();
            String c = name.substring(0, 1).toUpperCase(Locale.US);
            String methName = "set" + c + name.substring(1);

            java.lang.reflect.Method setMeth = getSetMethod(methName, propDescs);

            try {
                if (setMeth == null) {
                    throw new NoSuchMethodException(
                            "No setter for property '" + name + "'");
                }

                Class[] params = setMeth.getParameterTypes();
                if (params.length != 1) {
                    throw new NoSuchMethodException(
                        "No 1-argument setter for property '" + name + "'");
                }
                if (params[0].equals(int.class)) {
                    setMeth.invoke(obj, new Object[]{new Integer(pp
                            .getIntProperty(name))});
                } else if (params[0].equals(long.class)) {
                    setMeth.invoke(obj, new Object[]{new Long(pp
                            .getLongProperty(name))});
                } else if (params[0].equals(float.class)) {
                    setMeth.invoke(obj, new Object[]{new Float(pp
                            .getFloatProperty(name))});
                } else if (params[0].equals(double.class)) {
                    setMeth.invoke(obj, new Object[]{new Double(pp
                            .getDoubleProperty(name))});
                } else if (params[0].equals(boolean.class)) {
                    setMeth.invoke(obj, new Object[]{new Boolean(pp
                            .getBooleanProperty(name))});
                } else if (params[0].equals(String.class)) {
                    setMeth.invoke(obj,
                            new Object[]{pp.getStringProperty(name)});
                } else {
                    throw new NoSuchMethodException(
                            "No primitive-type setter for property '" + name
                                    + "'");
                }
            } catch (NumberFormatException nfe) {
                throw new SchedulerConfigException("Could not parse property '"
                        + name + "' into correct data type: " + nfe.toString());
            }
        }
    }

    private java.lang.reflect.Method getSetMethod(String name,
            PropertyDescriptor[] props) {
        for (int i = 0; i < props.length; i++) {
            java.lang.reflect.Method wMeth = props[i].getWriteMethod();

            if (wMeth != null && wMeth.getName().equals(name)) {
                return wMeth;
            }
        }

        return null;
    }

    private Class loadClass(String className) throws ClassNotFoundException {

        try {
            return Thread.currentThread().getContextClassLoader().loadClass(
                    className);
        } catch (ClassNotFoundException e) {
            return getClass().getClassLoader().loadClass(className);
        }
    }
    
    private String getSchedulerName() {
        return cfg.getStringProperty(PROP_SCHED_INSTANCE_NAME,
                "QuartzScheduler");
    }

    private String getSchedulerInstId() {
        return cfg.getStringProperty(PROP_SCHED_INSTANCE_ID,
                DEFAULT_INSTANCE_ID);
    }

    /**
     * <p>
     * Returns a handle to the Scheduler produced by this factory.
     * </p>
     * 
     * <p>
     * If one of the <code>initialize</code> methods has not be previously
     * called, then the default (no-arg) <code>initialize()</code> method
     * will be called by this method.
     * </p>
     */
    public Scheduler getScheduler() throws SchedulerException {
        if (cfg == null) {
            initialize();
        }

        SchedulerRepository schedRep = SchedulerRepository.getInstance();

        Scheduler sched = schedRep.lookup(getSchedulerName());

        if (sched != null) {
            if (sched.isShutdown()) {
                schedRep.remove(getSchedulerName());
            } else {
                return sched;
            }
        }

        sched = instantiate();

        return sched;
    }

    /**
     * <p>
     * Returns a handle to the default Scheduler, creating it if it does not
     * yet exist.
     * </p>
     * 
     * @see #initialize()
     */
    public static Scheduler getDefaultScheduler() throws SchedulerException {
        StdSchedulerFactory fact = new StdSchedulerFactory();

        return fact.getScheduler();
    }

    /**
     * <p>
     * Returns a handle to the Scheduler with the given name, if it exists (if
     * it has already been instantiated).
     * </p>
     */
    public Scheduler getScheduler(String schedName) throws SchedulerException {
        return SchedulerRepository.getInstance().lookup(schedName);
    }

    /**
     * <p>
     * Returns a handle to all known Schedulers (made by any
     * StdSchedulerFactory instance.).
     * </p>
     */
    public Collection getAllSchedulers() throws SchedulerException {
        return SchedulerRepository.getInstance().lookupAll();
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人高清在线| 欧美精品v日韩精品v韩国精品v| 亚洲欧洲av在线| 日韩一级免费观看| 欧美日韩一区 二区 三区 久久精品| 亚洲一区二区三区国产| 国产日韩成人精品| 免费观看日韩电影| 欧美性猛交一区二区三区精品 | 亚洲成av人片www| 亚洲欧美另类久久久精品2019| 国产精品国产精品国产专区不蜜| 中文子幕无线码一区tr | 欧美天堂亚洲电影院在线播放| 粉嫩嫩av羞羞动漫久久久 | 国产一区二区剧情av在线| 在线观看日韩毛片| 精品国产免费一区二区三区香蕉| 91精品国产aⅴ一区二区| 91啦中文在线观看| 欧美一区二区三区视频| 欧美国产一区在线| 日本成人超碰在线观看| 成人中文字幕电影| 欧美一卡二卡三卡| 亚洲成人免费观看| 99精品视频在线免费观看| 欧美美女直播网站| 亚洲三级视频在线观看| 国内精品国产成人| 日韩欧美高清一区| 亚洲一区二区在线视频| 久久91精品国产91久久小草 | 三级一区在线视频先锋| 91亚洲国产成人精品一区二区三 | 亚洲色图在线视频| 在线综合+亚洲+欧美中文字幕| 欧洲精品在线观看| 日韩视频在线你懂得| 欧美mv日韩mv国产| 国产精品久久久久久久午夜片| 五月天婷婷综合| 国产精品一区二区三区四区| 91色porny在线视频| 日韩免费在线观看| 亚洲精品国产视频| 韩国成人精品a∨在线观看| 91免费版在线看| 精品成人私密视频| 日韩电影免费一区| www.色综合.com| 欧美亚洲日本一区| 久久毛片高清国产| 青青草原综合久久大伊人精品 | 欧美国产精品一区二区三区| 一区二区三区久久久| 国产成人一级电影| 日韩精品中午字幕| 日韩精品一二三区| 欧美午夜精品理论片a级按摩| 国产精品免费av| 日韩国产欧美在线视频| av网站一区二区三区| 国产亚洲欧美日韩俺去了| 久久精品国产99国产| 欧美日韩成人一区| 亚洲一卡二卡三卡四卡五卡| 成人黄色在线网站| 国产欧美一区二区精品秋霞影院| 亚洲一区在线观看免费| 成人免费av网站| 国产精品美女久久久久高潮| 国产成人免费xxxxxxxx| 久久久天堂av| 1024亚洲合集| 国产一区二区女| 国产欧美综合在线| 成人免费av在线| 亚洲精选免费视频| 91国产精品成人| 亚洲欧美一区二区久久| 色综合久久综合| 一区二区三区在线视频观看| 欧美偷拍一区二区| 亚洲成a天堂v人片| 欧美一级高清大全免费观看| 一区二区三区在线免费播放 | 玖玖九九国产精品| 欧美肥妇free| 久久精品国产一区二区三| 精品国精品自拍自在线| 国产精品伊人色| 国产亚洲欧美日韩在线一区| www.av亚洲| 亚洲国产wwwccc36天堂| 欧美一级片在线看| 国产成人亚洲综合色影视| 国产精品福利在线播放| 欧美日韩卡一卡二| 国产黄色精品网站| 亚洲一区二区欧美日韩 | 高清不卡在线观看| 日本一区二区成人| 在线精品视频免费播放| 偷拍亚洲欧洲综合| 国产亚洲一区二区三区在线观看| 国产东北露脸精品视频| 一区二区三区毛片| 欧美成人精品高清在线播放| 国产999精品久久久久久绿帽| 亚洲乱码日产精品bd| 欧美一区二区在线观看| 成人性生交大片免费看在线播放| 亚洲一区二区综合| 久久久久久久久久电影| 日本福利一区二区| 国产精品1区二区.| 一级特黄大欧美久久久| 国产欧美日韩视频在线观看| 欧美日韩激情在线| www.日韩精品| 蜜臀久久99精品久久久画质超高清 | 亚洲国产电影在线观看| 欧美三级日韩在线| 国产91富婆露脸刺激对白| 亚洲午夜激情网页| 国产精品免费视频一区| 色综合久久久久综合体桃花网| 午夜一区二区三区在线观看| 中文av一区二区| 国产婷婷色一区二区三区 | 欧美成人精品1314www| 国产91富婆露脸刺激对白| 亚洲综合成人网| 亚洲欧美日韩国产手机在线| 国产欧美日本一区二区三区| 欧美va天堂va视频va在线| 欧美一区二区啪啪| 精品视频一区 二区 三区| www.亚洲在线| www.亚洲色图.com| 国产精品88av| 久久精品99国产精品日本| 天堂资源在线中文精品| 国产精品久久久久久久久免费樱桃 | 日韩一级免费观看| 欧美日韩中文国产| 色视频欧美一区二区三区| 久久不见久久见免费视频1| 男男gaygay亚洲| 日本中文字幕一区二区视频 | 91麻豆swag| 91视频国产观看| 不卡一二三区首页| 亚洲第一成人在线| 三级欧美韩日大片在线看| 亚洲国产中文字幕在线视频综合| 亚洲激情在线播放| 亚洲午夜一二三区视频| 亚洲综合久久av| 亚洲主播在线观看| 日韩vs国产vs欧美| 美国毛片一区二区| 国产伦精品一区二区三区免费迷 | 亚洲图片欧美激情| 亚洲色图制服丝袜| 亚洲国产毛片aaaaa无费看| 蜜桃一区二区三区四区| 在线观看亚洲专区| 欧美群妇大交群中文字幕| 亚洲免费视频中文字幕| 伊人婷婷欧美激情| 午夜精品一区二区三区三上悠亚| 秋霞午夜鲁丝一区二区老狼| 国产一区二区三区香蕉| 大陆成人av片| 欧美伊人久久大香线蕉综合69| 欧美色图一区二区三区| 日韩午夜激情电影| 国产精品毛片无遮挡高清| 亚洲一区二区精品3399| 激情久久五月天| 91蝌蚪porny九色| 26uuuu精品一区二区| 综合中文字幕亚洲| 久久国产人妖系列| 91啪九色porn原创视频在线观看| 欧美高清视频www夜色资源网| 国产日韩欧美不卡在线| 香蕉久久一区二区不卡无毒影院 | 国产亚洲欧美激情| 精品国产乱码久久久久久免费| 欧美本精品男人aⅴ天堂| 国产精品美女久久久久久久| 亚洲一二三区视频在线观看| 国产在线播精品第三| 精品视频资源站| 国产精品女上位| 免费视频最近日韩| 在线观看不卡视频|