⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qsp.java

📁 java pos,你可以直接编译运行,
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    public void setLogger (Logger logger, String realm) {        this.logger = logger;        this.realm  = realm;    }    public String getRealm () {        return realm;    }    public Logger getLogger () {        return logger;    }    public void configure (String tagname) throws ConfigurationException {        QSPConfigurator configurator = QSPConfiguratorFactory.create (tagname);        NodeList nodes = config.getElementsByTagName (tagname);        if (configurator instanceof QSPReConfigurator && nodes.getLength()>0)            reconfigurables.add (tagname);        for (int i=0; i<nodes.getLength(); i++) {            configurator.config (this, nodes.item(i));        }    }    public void reconfigure (String tagname) throws ConfigurationException {        QSPConfigurator configurator = QSPConfiguratorFactory.create (tagname);        if (configurator instanceof QSPReConfigurator) {            NodeList nodes = config.getElementsByTagName (tagname);            for (int i=0; i<nodes.getLength(); i++)                 ((QSPReConfigurator)configurator).reconfig                     (this, nodes.item(i));        }    }    protected void configure () throws ConfigurationException {        LogEvent evt = new LogEvent (this, "configure");        String[] st = getSupportedTags ();        for (int i=0; i<st.length; i++) {            evt.addMessage (st [i]);            configure (st [i]);        }        evt.addMessage ("-extended tags-");        st = getExtendedTags ();        for (int i=0; i<st.length; i++) {            evt.addMessage (st [i]);            configure (st [i]);        }        Logger.log (evt);    }    private boolean monitorConfigFile () {        long l;        while (lastModified == (l=configFile.lastModified())) {            if (newConfigFile) {                Logger.log (new LogEvent (this, "new-config-detected"));                return true;            }            try {                Thread.interrupted ();  // clear interrupt flag                Thread.sleep (monitorConfigInterval);            } catch (InterruptedException e) {                 Logger.log (                    new LogEvent (this, "sleep-interrupted",                         Long.toString (monitorConfigInterval) + "/" +                        Long.toString (l) + "/" +                         Long.toString (lastModified)                    )                );                return true;            }        }        return (lastModified = l) != 0;    }    public void shutdown () {        Logger.log (new LogEvent (this, "shutdown"));        new Thread() {            public void run() {                try {                    Thread.sleep (1000);                } catch (InterruptedException e) { }                System.exit (0);            }        }.start ();    }    public static void shutdownMuxes() {        Iterator iter = NameRegistrar.getMap().values().iterator();        while (iter.hasNext()) {            Object obj = iter.next();            if (obj instanceof ISOMUX) {                ((ISOMUX)obj).terminate (60000);            }        }    }    public void setConfiguration (Configuration cfg) {        this.cfg = cfg;    }    public Configuration getConfiguration () {        return cfg;    }    public String get (String propName) {        return            (cfg != null) ? cfg.get (propName) : null;    }    public void run () {        while (newConfigFile || monitorConfigFile ()) {            try {                parser.parse (configFile.getPath());                setConfig (parser.getDocument());                if (newConfigFile) {                    Logger.log (                        new LogEvent (this, "new-config-file", configFile)                    );                    configure();                    newConfigFile = false;                } else {                    Iterator iter = getReConfigurables().iterator();                    while (iter.hasNext())                        reconfigure ((String) iter.next());                }            } catch (Exception e) {                Logger.log (new LogEvent (this, "QSP", e));                try {                    Thread.sleep (1000);                } catch (InterruptedException ie) { }            }        }        Logger.log (new LogEvent (this, "shutdown-start"));        shutdownMuxes ();        Logger.log (new LogEvent (this, "shutdown"));        System.exit (0);    }    public static QSP getInstance (String name)         throws NameRegistrar.NotFoundException    {        return (QSP) NameRegistrar.get (NAMEREGISTRAR_PREFIX + name);    }    public static QSP getInstance ()         throws NameRegistrar.NotFoundException    {        return getInstance (DEFAULT_NAME);    }    /**     * @return QSP's config instance (global properties)     */    public static Configuration getGlobalConfiguration () {        Configuration cfg;        try {            cfg = getInstance().getConfiguration();        } catch (NameRegistrar.NotFoundException e) {            cfg = new SimpleConfiguration();        }        return cfg;    }    /**     * Launches QSP     * @param configFile XML based QSP config file     * @param supportedTags array of supported tags     * @param extendedTags array of extended tags     * @param validation true to validate XML file     */    public static void launch (        String configFile,         String[] supportedTags,         String[] extendedTags, boolean validation)    {        DOMParser parser = new DOMParser();        QSP qsp = new QSP (supportedTags, extendedTags, validation);        try {            qsp.setParser (parser);            qsp.setConfigFile (configFile);            parser.setFeature(                "http://xml.org/sax/features/validation",                 qsp.getValidation()            );            parser.setErrorHandler (qsp);            parser.parse (qsp.configFile.getPath());            qsp.setConfig (parser.getDocument());            qsp.configure ();                qsp.registerMBean (                TransientSpace.getSpace (), "type=space,name=default"            );            if (controlPanel != null)                controlPanel.showUp();            if (qsp.getLogger() != null)                 new SystemMonitor (3600000, qsp.getLogger(), "monitor");            ThreadGroup group = new ThreadGroup("QSP");            new Thread (group, qsp).start();        } catch (Exception e) {            Logger.log (new LogEvent (qsp, "error", e));            e.printStackTrace ();        }    }    /**     * @return task instance with given name.     * @throws NameRegistrar.NotFoundException;     * @see NameRegistrar     */    public static Object getTask (String name)        throws NameRegistrar.NotFoundException    {        return NameRegistrar.get (            ConfigTask.NAMEREGISTRAR_PREFIX+name        );    }    protected void createMBeanServer ()         throws IOException, MalformedObjectNameException,        InstanceAlreadyExistsException,         MBeanRegistrationException,        MalformedObjectNameException,        NotCompliantMBeanException    {        // Trace.parseTraceProperties ();        String domain = cfg.get ("jmx.domain", "QSP");        server = MBeanServerFactory.createMBeanServer(domain);        ObjectName mbeanObjectName = new ObjectName(domain + ":type=QSP");        server.registerMBean (this, mbeanObjectName);    }    public void registerMBean (Object bean, String type)         throws IOException, NotCompliantMBeanException,               InstanceAlreadyExistsException,               InstanceAlreadyExistsException,                MalformedObjectNameException,               MBeanRegistrationException    {        MBeanServer server = getMBeanServer();        ObjectName name = new ObjectName (            server.getDefaultDomain() + ":" + type         );        server.registerMBean (bean, name);    }    /**     * Launches QSP with default values for supportedTags and validation     * @param configFile XML based QSP config file     */    public static void launch (String configFile) {        launch (configFile, SUPPORTED_TAGS, new String[0], true);    }    public static void main (String args[]) {        if (args.length != 1) {            System.out.println ("Usage: org.jpos.apps.qsp.QSP <configfile>");            System.exit (1);        }        launch (args[0]);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -