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

📄 standardcontextsftest.java

📁 精通tomcat书籍原代码,希望大家共同学习
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        standardContext
                .addWrapperListener("org.apache.catalina.ContainerListener");
        standardContext
                .addWrapperLifecycle("org.apache.catalina.ContainerListener");
        standardContext.addWatchedResource("/tmp/reloaded");
        String aspectedResult = "<Context"
                + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\""
                + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">"
                + LF.LINE_SEPARATOR
                + "  <Listener className=\"org.apache.catalina.storeconfig.InfoLifecycleListener\"/>"
                + LF.LINE_SEPARATOR
                + "  <InstanceListener>org.apache.catalina.ContainerListener</InstanceListener>"
                + LF.LINE_SEPARATOR
                + "  <WrapperListener>org.apache.catalina.ContainerListener</WrapperListener>"
                + LF.LINE_SEPARATOR
                + "  <WrapperLifecycle>org.apache.catalina.ContainerListener</WrapperLifecycle>"
                + LF.LINE_SEPARATOR
                + "  <WatchedResource>/tmp/reloaded</WatchedResource>"
                + LF.LINE_SEPARATOR + "</Context>" + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    public void testNamingStore() throws Exception {
        standardContext
                .addLifecycleListener(new org.apache.catalina.storeconfig.InfoLifecycleListener());
        NamingResources resources = standardContext.getNamingResources();
        ContextResourceEnvRef ref = new ContextResourceEnvRef();
        ref.setName("foo");
        ref.setType("type");
        resources.addResourceEnvRef(ref);
        ContextResourceLink res = new ContextResourceLink();
        res.setName("jdbc/Barlocal");
        res.setType("javax.sql.DataSource");
        res.setGlobal("jdbc/Bar");
        resources.addResourceLink(res);
        String aspectedResult = "<Context"
                + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\""
                + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">"
                + LF.LINE_SEPARATOR
                + "  <Listener className=\"org.apache.catalina.storeconfig.InfoLifecycleListener\"/>"
                + LF.LINE_SEPARATOR + "  <ResourceEnvRef" + LF.LINE_SEPARATOR
                + "    name=\"foo\"" + LF.LINE_SEPARATOR
                + "    type=\"type\"/>" + LF.LINE_SEPARATOR + "  <ResourceLink"
                + LF.LINE_SEPARATOR + "    global=\"jdbc/Bar\""
                + LF.LINE_SEPARATOR + "    name=\"jdbc/Barlocal\""
                + LF.LINE_SEPARATOR + "    type=\"javax.sql.DataSource\"/>"
                + LF.LINE_SEPARATOR + "</Context>" + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    public void testManagerStore() throws Exception {
        standardContext.setManager(new StandardManager());
        String aspectedResult = "<Context" + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\"" + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">" + LF.LINE_SEPARATOR
                + "</Context>\r\n";
        check(aspectedResult);
    }

    public void testRealmStore() throws Exception {
        standardContext.setManager(new StandardManager());
        JAASRealm realm = new JAASRealm();
        standardContext.setRealm(realm);
        String aspectedResult = "<Context" + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\"" + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">" + LF.LINE_SEPARATOR
                + "  <Realm className=\"org.apache.catalina.realm.JAASRealm\""
                + LF.LINE_SEPARATOR + "    appName=\"myapps\"/>"
                + LF.LINE_SEPARATOR + "</Context>" + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    // @TODO Why the MaxInactiveInterval is after setManager set to 1800 sec?
    public void testManagerNonStandardStore() throws Exception {
        StandardManager manager = new StandardManager();
        manager.setMaxActiveSessions(100);
        assertEquals(60, manager.getMaxInactiveInterval());
        standardContext.setManager(manager);
        assertEquals(1800, manager.getMaxInactiveInterval());
        String aspectedResult = "<Context"
                + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\""
                + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">"
                + LF.LINE_SEPARATOR
                + "  <Manager className=\"org.apache.catalina.session.StandardManager\""
                + LF.LINE_SEPARATOR + "      maxActiveSessions=\"100\""
                + LF.LINE_SEPARATOR + "      maxInactiveInterval=\"1800\"/>"
                + LF.LINE_SEPARATOR + "</Context>\r\n";
        check(aspectedResult);
    }

    public void testPersistentManagerStore() throws Exception {
        PersistentManager manager = new PersistentManager();
        manager.setSaveOnRestart(false);
        standardContext.setManager(manager);
        String aspectedResult = "<Context"
                + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\""
                + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">"
                + LF.LINE_SEPARATOR
                + "  <Manager className=\"org.apache.catalina.session.PersistentManager\""
                + LF.LINE_SEPARATOR + "      maxInactiveInterval=\"1800\""
                + LF.LINE_SEPARATOR + "      saveOnRestart=\"false\">"
                + LF.LINE_SEPARATOR + "  </Manager>" + LF.LINE_SEPARATOR
                + "</Context>" + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    public void testPersistentManagerFileStore() throws Exception {
        PersistentManager manager = new PersistentManager();
        manager.setSaveOnRestart(false);
        FileStore store = new FileStore();
        manager.setStore(store);
        standardContext.setManager(manager);
        String aspectedResult = "<Context"
                + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\""
                + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">"
                + LF.LINE_SEPARATOR
                + "  <Manager className=\"org.apache.catalina.session.PersistentManager\""
                + LF.LINE_SEPARATOR
                + "      maxInactiveInterval=\"1800\""
                + LF.LINE_SEPARATOR
                + "      saveOnRestart=\"false\">"
                + LF.LINE_SEPARATOR
                + "    <Store className=\"org.apache.catalina.session.FileStore\"/>"
                + LF.LINE_SEPARATOR + "  </Manager>" + LF.LINE_SEPARATOR
                + "</Context>" + LF.LINE_SEPARATOR;
        check(aspectedResult);

    }

    public void testDefaultResources() throws Exception {
        FileDirContext dirC = new FileDirContext();
        standardContext.setAllowLinking(true);
        standardContext.setResources(dirC);
        StandardHost host = new StandardHost();
        host.addChild(standardContext);
        host.setName("localhost");
        host.setAppBase("webapps");
        standardContext.resourcesStart();
        assertNotNull(standardContext.getResources());
        String aspectedResult = "<Context" + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\"" + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">" + LF.LINE_SEPARATOR + "</Context>"
                + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    /*
     * + " <Resources className=\"org.apache.naming.resources.FileDirContext\"" +
     * Constants.LINE_SEPARATOR + " allowLinking=\"true\"/>" +
     * Constants.LINE_SEPARATOR
     */
    public void testStoreEmpty() throws Exception {
        String aspectedResult = "<Context" + LF.LINE_SEPARATOR
                + "    docBase=\"myapps\"" + LF.LINE_SEPARATOR
                + "    path=\"/myapps\">" + LF.LINE_SEPARATOR + "</Context>"
                + LF.LINE_SEPARATOR;
        check(aspectedResult);
    }

    protected void check(String aspectedResult) throws Exception {
        factory.store(pWriter, -2, standardContext);
        assertEquals(aspectedResult, writer.toString());
    }

}

⌨️ 快捷键说明

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