cmsimportexportconfiguration.java

来自「找了很久才找到到源代码」· Java 代码 · 共 999 行 · 第 1/3 页

JAVA
999
字号
            + N_PRINCIPALTRANSLATION, 0, A_TYPE);
        digester.addCallParam("*/"
            + N_IMPORTEXPORT
            + "/"
            + N_IMPORT
            + "/"
            + N_PRINCIPALTRANSLATIONS
            + "/"
            + N_PRINCIPALTRANSLATION, 1, A_FROM);
        digester.addCallParam("*/"
            + N_IMPORTEXPORT
            + "/"
            + N_IMPORT
            + "/"
            + N_PRINCIPALTRANSLATIONS
            + "/"
            + N_PRINCIPALTRANSLATION, 2, A_TO);

        // add rules for the ignored properties
        digester.addCallMethod(
            "*/" + N_IMPORTEXPORT + "/" + N_IMPORT + "/" + N_IGNOREDPROPERTIES + "/" + N_PROPERTY,
            "addIgnoredProperty",
            1);
        digester.addCallParam(
            "*/" + N_IMPORTEXPORT + "/" + N_IMPORT + "/" + N_IGNOREDPROPERTIES + "/" + N_PROPERTY,
            0,
            A_NAME);

        // creation of the static export manager        
        digester.addObjectCreate("*/" + N_STATICEXPORT, CmsStaticExportManager.class);
        // static export manager finished
        digester.addSetNext("*/" + N_STATICEXPORT, "setStaticExportManager");
        // export enabled role
        digester.addCallMethod("*/" + N_STATICEXPORT, "setExportEnabled", 1);
        digester.addCallParam("*/" + N_STATICEXPORT, 0, A_ENABLED);
        // export handler rule
        digester.addCallMethod("*/" + N_STATICEXPORT + "/" + N_STATICEXPORT_HANDLER, "setHandler", 0);
        // link substitution handler rule
        digester.addCallMethod(
            "*/" + N_STATICEXPORT + "/" + N_LINKSUBSTITUTION_HANDLER,
            "setLinkSubstitutionHandler",
            0);
        // exportpath rule
        digester.addCallMethod("*/" + N_STATICEXPORT + "/" + N_STATICEXPORT_EXPORTPATH, "setExportPath", 0);
        // exportworkpath rule
        digester.addCallMethod("*/" + N_STATICEXPORT + "/" + N_STATICEXPORT_EXPORTWORKPATH, "setExportWorkPath", 0);
        // exportbackups rule
        digester.addCallMethod("*/" + N_STATICEXPORT + "/" + N_STATICEXPORT_EXPORTBACKUPS, "setExportBackups", 0);
        // default property rule
        digester.addCallMethod("*/" + N_STATICEXPORT + "/" + N_STATICEXPORT_DEFAULT, "setDefault", 0);
        // export suffix rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_DEFAULTSUFFIXES
            + "/"
            + N_STATICEXPORT_SUFFIX, "setExportSuffix", 1);
        digester.addCallParam("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_DEFAULTSUFFIXES
            + "/"
            + N_STATICEXPORT_SUFFIX, 0, A_KEY);
        // header rule
        digester.addCallMethod(
            "*/" + N_STATICEXPORT + "/" + N_STATICEXPORT_EXPORTHEADERS + "/" + N_STATICEXPORT_HEADER,
            "setExportHeader",
            0);
        // accept-language rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_REQUESTHEADERS
            + "/"
            + N_STATICEXPORT_ACCEPTLANGUAGE, "setAcceptLanguageHeader", 0);
        // accept-charset rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_REQUESTHEADERS
            + "/"
            + N_STATICEXPORT_ACCEPTCHARSET, "setAcceptCharsetHeader", 0);
        // accept-charset rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_REQUESTHEADERS
            + "/"
            + N_STATICEXPORT_REMOTEADDR, "setRemoteAddr", 0);
        // rfs-prefix rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_RFS_PREFIX, "setRfsPrefix", 0);
        // vfs-prefix rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_VFS_PREFIX, "setVfsPrefix", 0);
        // relative links rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_RELATIVELINKS, "setRelativeLinks", 0);
        // exporturl rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_EXPORTURL, "setExportUrl", 0);
        // plain export optimization rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_PLAINOPTIMIZATION, "setPlainExportOptimization", 0);
        // test resource rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_TESTRESOURCE, "setTestResource", 1);
        digester.addCallParam("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_TESTRESOURCE, 0, A_URI);
        // resources to export rule
        digester.addCallMethod("*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_RESOURCESTORENDER
            + "/"
            + N_STATICEXPORT_REGEX, "setExportFolderPattern", 0);

        // export-rules configuration
        String exportRulePath = "*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_RESOURCESTORENDER
            + "/"
            + N_STATICEXPORT_EXPORTRULES
            + "/"
            + N_STATICEXPORT_EXPORTRULE;
        digester.addCallMethod(exportRulePath, "addExportRule", 2);
        digester.addCallParam(exportRulePath + "/" + N_STATICEXPORT_NAME, 0);
        digester.addCallParam(exportRulePath + "/" + N_STATICEXPORT_DESCRIPTION, 1);
        digester.addCallMethod(
            exportRulePath + "/" + N_STATICEXPORT_MODIFIED + "/" + N_STATICEXPORT_REGEX,
            "addExportRuleRegex",
            1);
        digester.addCallParam(exportRulePath + "/" + N_STATICEXPORT_MODIFIED + "/" + N_STATICEXPORT_REGEX, 0);
        digester.addCallMethod(
            exportRulePath + "/" + N_STATICEXPORT_EXPORT + "/" + N_STATICEXPORT_URI,
            "addExportRuleUri",
            1);
        digester.addCallParam(exportRulePath + "/" + N_STATICEXPORT_EXPORT + "/" + N_STATICEXPORT_URI, 0);

        // rfs-rules configuration
        String rfsRulePath = "*/"
            + N_STATICEXPORT
            + "/"
            + N_STATICEXPORT_RENDERSETTINGS
            + "/"
            + N_STATICEXPORT_RFS_RULES
            + "/"
            + N_STATICEXPORT_RFS_RULE;
        digester.addCallMethod(rfsRulePath, "addRfsRule", 8);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_NAME, 0);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_DESCRIPTION, 1);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_SOURCE, 2);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_RFS_PREFIX, 3);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_EXPORTPATH, 4);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_EXPORTWORKPATH, 5);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_EXPORTBACKUPS, 6);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_RELATIVELINKS, 7);
        // rfs-rule related system resources
        digester.addCallMethod(
            rfsRulePath + "/" + N_STATICEXPORT_RELATED_SYSTEM_RES + "/" + N_STATICEXPORT_REGEX,
            "addRfsRuleSystemRes",
            1);
        digester.addCallParam(rfsRulePath + "/" + N_STATICEXPORT_RELATED_SYSTEM_RES + "/" + N_STATICEXPORT_REGEX, 0);

        // add rules for the user data export
        digester.addObjectCreate("*/" + N_USERCSVEXPORT, CmsUserExportSettings.class);
        digester.addCallMethod("*/" + N_USERCSVEXPORT + "/" + N_SEPARATOR, "setSeparator", 0);
        digester.addCallMethod("*/" + N_USERCSVEXPORT + "/" + N_COLUMNS + "/" + N_COLUMN, "addColumn", 0);
        digester.addSetNext("*/" + N_USERCSVEXPORT, "setUserExportSettings");

        // creation of the static repository manager        
        digester.addObjectCreate("*/" + N_REPOSITORIES, CmsRepositoryManager.class);
        digester.addCallMethod("*/" + N_REPOSITORIES, I_CmsConfigurationParameterHandler.INIT_CONFIGURATION_METHOD);
        digester.addSetNext("*/" + N_REPOSITORIES, "setRepositoryManager");

        // repository
        digester.addObjectCreate("*/" + N_REPOSITORIES + "/" + N_REPOSITORY, A_CLASS, CmsConfigurationException.class);

        // repository name
        digester.addCallMethod("*/" + N_REPOSITORIES + "/" + N_REPOSITORY, "setName", 1);
        digester.addCallParam("*/" + N_REPOSITORIES + "/" + N_REPOSITORY, 0, A_NAME);

        // repository params
        digester.addCallMethod(
            "*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_PARAMS + "/" + N_PARAM,
            I_CmsConfigurationParameterHandler.ADD_PARAMETER_METHOD,
            2);
        digester.addCallParam(
            "*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_PARAMS + "/" + N_PARAM,
            0,
            I_CmsXmlConfiguration.A_NAME);
        digester.addCallParam("*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_PARAMS + "/" + N_PARAM, 1);

        // repository filter
        digester.addObjectCreate("*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_FILTER, CmsRepositoryFilter.class);

        // repository filter type
        digester.addCallMethod("*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_FILTER, "setType", 1);
        digester.addCallParam("*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_FILTER, 0, A_TYPE);

        // repository filter rules
        digester.addCallMethod(
            "*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_FILTER + "/" + N_REGEX,
            "addFilterRule",
            1);
        digester.addCallParam("*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_FILTER + "/" + N_REGEX, 0);

        digester.addSetNext("*/" + N_REPOSITORIES + "/" + N_REPOSITORY + "/" + N_FILTER, "setFilter");

        digester.addSetNext("*/" + N_REPOSITORIES + "/" + N_REPOSITORY, "addRepositoryClass");

        // create at least a repository manager though no repositories are configured
        if (m_repositoryManager == null) {
            m_repositoryManager = new CmsRepositoryManager(false);
        }
    }

    /**
     * @see org.opencms.configuration.I_CmsXmlConfiguration#generateXml(org.dom4j.Element)
     */
    public Element generateXml(Element parent) {

        // generate import/export node and subnodes
        Element importexportElement = parent.addElement(N_IMPORTEXPORT);

        Element resourceloadersElement = importexportElement.addElement(N_IMPORTEXPORTHANDLERS);
        List handlers = m_importExportManager.getImportExportHandlers();
        Iterator i = handlers.iterator();
        while (i.hasNext()) {
            I_CmsImportExportHandler handler = (I_CmsImportExportHandler)i.next();
            // add the handler node
            Element loaderNode = resourceloadersElement.addElement(N_IMPORTEXPORTHANDLER);
            loaderNode.addAttribute(A_CLASS, handler.getClass().getName());
        }

        Element importElement = importexportElement.addElement(N_IMPORT);

        // <overwrite> node
        importElement.addElement(N_OVERWRITE).setText(
            String.valueOf(m_importExportManager.overwriteCollidingResources()));

        // <convert> node
        importElement.addElement(N_CONVERT).setText(String.valueOf(m_importExportManager.convertToXmlPage()));

        // <oldwebappurl> node
        if (m_importExportManager.getOldWebAppUrl() != null) {
            importElement.addElement(N_OLDWEBAPPURL).setText(m_importExportManager.getOldWebAppUrl());
        }

        // <importversions> node
        Element resourcetypesElement = importElement.addElement(N_IMPORTVERSIONS);
        i = m_importExportManager.getImportVersionClasses().iterator();
        while (i.hasNext()) {
            resourcetypesElement.addElement(N_IMPORTVERSION).addAttribute(A_CLASS, i.next().getClass().getName());
        }

        // <immutables> node
        Element immutablesElement = importElement.addElement(N_IMMUTABLES);
        i = m_importExportManager.getImmutableResources().iterator();
        while (i.hasNext()) {
            String uri = (String)i.next();
            immutablesElement.addElement(N_RESOURCE).addAttribute(A_URI, uri);
        }

        // <principaltranslations> node
        Element principalsElement = importElement.addElement(N_PRINCIPALTRANSLATIONS);
        i = m_importExportManager.getImportUserTranslations().keySet().iterator();
        while (i.hasNext()) {
            String from = (String)i.next();
            String to = (String)m_importExportManager.getImportUserTranslations().get(from);
            principalsElement.addElement(N_PRINCIPALTRANSLATION).addAttribute(A_TYPE, I_CmsPrincipal.PRINCIPAL_USER).addAttribute(
                A_FROM,
                from).addAttribute(A_TO, to);
        }
        i = m_importExportManager.getImportGroupTranslations().keySet().iterator();
        while (i.hasNext()) {
            String from = (String)i.next();
            String to = (String)m_importExportManager.getImportGroupTranslations().get(from);
            principalsElement.addElement(N_PRINCIPALTRANSLATION).addAttribute(A_TYPE, I_CmsPrincipal.PRINCIPAL_GROUP).addAttribute(
                A_FROM,
                from).addAttribute(A_TO, to);
        }

        // <ignoredproperties> node
        Element propertiesElement = importElement.addElement(N_IGNOREDPROPERTIES);
        i = m_importExportManager.getIgnoredProperties().iterator();
        while (i.hasNext()) {
            String property = (String)i.next();
            propertiesElement.addElement(N_PROPERTY).addAttribute(A_NAME, property);
        }

        // <staticexport> node
        Element staticexportElement = parent.addElement(N_STATICEXPORT);
        staticexportElement.addAttribute(A_ENABLED, m_staticExportManager.getExportEnabled());

        // <staticexporthandler> node
        staticexportElement.addElement(N_STATICEXPORT_HANDLER).addText(
            m_staticExportManager.getHandler().getClass().getName());

        // <linksubstitutionhandler> node

⌨️ 快捷键说明

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