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

📄 testcmsimportexport.java

📁 找了很久才找到到源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:

            I_CmsResourceType type = OpenCms.getResourceManager().getResourceType(
                CmsResourceTypeXmlPage.getStaticTypeId());
            I_CmsLinkParseable validatable = (I_CmsLinkParseable)type;

            // check the links
            CmsFile res1 = cms.readFile(filename1);
            List links1 = validatable.parseLinks(cms, res1);
            assertEquals(links1.size(), 1);
            assertEquals(links1.get(0).toString(), cms.getRequestContext().addSiteRoot(filename2));

            CmsFile res2 = cms.readFile(filename2);
            List links2 = validatable.parseLinks(cms, res2);
            assertEquals(links2.size(), 1);
            assertEquals(links2.get(0).toString(), cms.getRequestContext().addSiteRoot(filename1));
        } finally {
            try {
                if (zipExportFilename != null) {
                    File file = new File(zipExportFilename);
                    if (file.exists()) {
                        file.delete();
                    }
                }
            } catch (Throwable t) {
                // intentionally left blank
            }
        }
    }

    /**
     * Tests the import of linked XmlContent in a different site, so that the link paths get broken.<p>
     * 
     * @throws Exception if something goes wrong
     */
    public void testImportExportBrokenLinksXml() throws Exception {

        CmsObject cms = getCmsObject();

        echo("Testing the import of linked Xml Content in a different site, so that the link paths get broken.");
        String filename1 = "/xmlcontent.html";
        String filename2 = "/xmlcontent2.html";
        String zipExportFilename = OpenCms.getSystemInfo().getAbsoluteRfsPathRelativeToWebInf(
            "packages/testImportExportBrokenLinks.zip");
        CmsXmlEntityResolver resolver = new CmsXmlEntityResolver(cms);

        cms.getRequestContext().setSiteRoot("/sites/default/");

        // create files 
        CmsResource res1 = cms.createResource(filename1, OpenCmsTestCase.ARTICLE_TYPEID);

        CmsResource res2 = cms.createResource(filename2, OpenCmsTestCase.ARTICLE_TYPEID);
        CmsFile file2 = cms.readFile(res2);
        String content2 = new String(file2.getContents(), CmsEncoder.ENCODING_UTF_8);
        CmsXmlContent xmlcontent2 = CmsXmlContentFactory.unmarshal(content2, CmsEncoder.ENCODING_UTF_8, resolver);
        xmlcontent2.getValue("Text", Locale.ENGLISH, 0).setStringValue(cms, "<a href='" + filename1 + "'>test</a>");
        if (!xmlcontent2.hasValue("Homepage", Locale.ENGLISH, 0)) {
            xmlcontent2.addValue(cms, "Homepage", Locale.ENGLISH, 0);
        }
        xmlcontent2.getValue("Homepage", Locale.ENGLISH, 0).setStringValue(cms, filename1);
        file2.setContents(xmlcontent2.marshal());
        cms.writeFile(file2);

        // if done before file2 exists, no structure id is stored
        CmsFile file1 = cms.readFile(res1);
        String content1 = new String(file1.getContents(), CmsEncoder.ENCODING_UTF_8);
        CmsXmlContent xmlcontent1 = CmsXmlContentFactory.unmarshal(content1, CmsEncoder.ENCODING_UTF_8, resolver);
        xmlcontent1.getValue("Text", Locale.ENGLISH, 0).setStringValue(cms, "<a href='" + filename2 + "'>test</a>");
        if (!xmlcontent1.hasValue("Homepage", Locale.ENGLISH, 0)) {
            xmlcontent1.addValue(cms, "Homepage", Locale.ENGLISH, 0);
        }
        xmlcontent1.getValue("Homepage", Locale.ENGLISH, 0).setStringValue(cms, filename2);
        file1.setContents(xmlcontent1.marshal());
        cms.writeFile(file1);

        // publish the files
        cms.unlockProject(cms.getRequestContext().currentProject().getUuid());
        OpenCms.getPublishManager().publishProject(cms);
        OpenCms.getPublishManager().waitWhileRunning();

        // export the files
        CmsVfsImportExportHandler vfsExportHandler = new CmsVfsImportExportHandler();
        vfsExportHandler.setFileName(zipExportFilename);
        List exportPaths = new ArrayList(1);
        exportPaths.add(filename1);
        exportPaths.add(filename2);
        vfsExportHandler.setExportPaths(exportPaths);
        vfsExportHandler.setIncludeSystem(false);
        vfsExportHandler.setIncludeUnchanged(true);
        vfsExportHandler.setExportUserdata(false);
        OpenCms.getImportExportManager().exportData(
            cms,
            vfsExportHandler,
            new CmsShellReport(cms.getRequestContext().getLocale()));

        // delete the both files
        cms.lockResource(filename1);
        cms.lockResource(filename2);
        cms.deleteResource(filename1, CmsResource.DELETE_REMOVE_SIBLINGS);
        cms.deleteResource(filename2, CmsResource.DELETE_REMOVE_SIBLINGS);
        // publish the deleted files
        cms.unlockProject(cms.getRequestContext().currentProject().getUuid());
        OpenCms.getPublishManager().publishProject(cms);
        OpenCms.getPublishManager().waitWhileRunning();

        cms.getRequestContext().setSiteRoot("/");
        try {
            // re-import the exported files
            OpenCms.getImportExportManager().importData(
                cms,
                zipExportFilename,
                "/",
                new CmsShellReport(cms.getRequestContext().getLocale()));

            I_CmsResourceType type = OpenCms.getResourceManager().getResourceType(OpenCmsTestCase.ARTICLE_TYPEID);
            I_CmsLinkParseable validatable = (I_CmsLinkParseable)type;

            // check the links
            CmsFile newRes1 = cms.readFile(filename1);
            List links1 = validatable.parseLinks(cms, newRes1);
            assertEquals(links1.size(), 2);
            assertEquals(links1.get(0).toString(), cms.getRequestContext().addSiteRoot(filename2));
            assertEquals(links1.get(1).toString(), cms.getRequestContext().addSiteRoot(filename2));

            CmsFile newRes2 = cms.readFile(filename2);
            List links2 = validatable.parseLinks(cms, newRes2);
            assertEquals(links2.size(), 2);
            assertEquals(links2.get(0).toString(), cms.getRequestContext().addSiteRoot(filename1));
            assertEquals(links2.get(1).toString(), cms.getRequestContext().addSiteRoot(filename1));
        } finally {
            try {
                if (zipExportFilename != null) {
                    File file = new File(zipExportFilename);
                    if (file.exists()) {
                        file.delete();
                    }
                }
            } catch (Throwable t) {
                // intentionally left blank
            }
        }
    }

    /**
     * Tests an overwriting import of VFS data.<p>
     * 
     * @throws Exception if something goes wrong
     */
    public void testImportExportFolder() throws Exception {

        CmsObject cms = getCmsObject();

        echo("Testing an overwriting import of VFS data.");
        String filename = "folder1/";
        String zipExportFilename = OpenCms.getSystemInfo().getAbsoluteRfsPathRelativeToWebInf(
            "packages/testImportExportFolder.zip");

        try {
            // export the folder
            CmsVfsImportExportHandler vfsExportHandler = new CmsVfsImportExportHandler();
            vfsExportHandler.setFileName(zipExportFilename);
            List exportPaths = new ArrayList(1);
            exportPaths.add(filename);
            vfsExportHandler.setExportPaths(exportPaths);
            vfsExportHandler.setIncludeSystem(false);
            vfsExportHandler.setIncludeUnchanged(true);
            vfsExportHandler.setExportUserdata(false);
            OpenCms.getImportExportManager().exportData(
                cms,
                vfsExportHandler,
                new CmsShellReport(cms.getRequestContext().getLocale()));

            // re-import the exported folder
            OpenCms.getImportExportManager().importData(
                cms,
                zipExportFilename,
                "/",
                new CmsShellReport(cms.getRequestContext().getLocale()));

        } finally {
            try {
                if (zipExportFilename != null) {
                    File file = new File(zipExportFilename);
                    if (file.exists()) {
                        file.delete();
                    }
                }
            } catch (Throwable t) {
                // intentionally left blank
            }
        }
    }

    /**
     * Tests import with structure id.<p>
     * 
     * @throws Exception if something goes wrong
     */
    public void testImportExportId() throws Exception {

        CmsObject cms = getCmsObject();

        echo("Testing import with structure id.");
        String filename = "/dummy2.txt";
        String contentStr = "This is a comment. I love comments.";
        String zipExportFilename = OpenCms.getSystemInfo().getAbsoluteRfsPathRelativeToWebInf(
            "packages/testImportExportId.zip");
        byte[] content = contentStr.getBytes();

        try {
            cms.getRequestContext().setSiteRoot("/");
            // create a dummy plain text file by the temporary user
            cms.createResource(filename, CmsResourceTypePlain.getStaticTypeId(), content, null);

            // publish the dummy plain text file
            cms.unlockResource(filename);
            OpenCms.getPublishManager().publishResource(cms, filename);
            OpenCms.getPublishManager().waitWhileRunning();

            storeResources(cms, filename);

            // export the dummy plain text file
            CmsVfsImportExportHandler vfsExportHandler = new CmsVfsImportExportHandler();
            vfsExportHandler.setFileName(zipExportFilename);
            List exportPaths = new ArrayList(1);
            exportPaths.add(filename);
            vfsExportHandler.setExportPaths(exportPaths);
            vfsExportHandler.setIncludeSystem(false);
            vfsExportHandler.setIncludeUnchanged(true);
            vfsExportHandler.setExportUserdata(false);
            OpenCms.getImportExportManager().exportData(
                cms,
                vfsExportHandler,
                new CmsShellReport(cms.getRequestContext().getLocale()));

            // delete the dummy plain text file
            cms.lockResource(filename);
            cms.deleteResource(filename, CmsResource.DELETE_REMOVE_SIBLINGS);
            // publish the deleted dummy plain text file
            cms.unlockResource(filename);
            OpenCms.getPublishManager().publishResource(cms, filename);
            OpenCms.getPublishManager().waitWhileRunning();

            // re-import the exported dummy plain text file
            OpenCms.getImportExportManager().importData(
                cms,
                zipExportFilename,
                "/",
                new CmsShellReport(cms.getRequestContext().getLocale()));

            // publish the file
            cms.unlockResource(filename);
            OpenCms.getPublishManager().publishResource(cms, filename);
            OpenCms.getPublishManager().waitWhileRunning();

            assertFilter(cms, cms.readResource(filename), OpenCmsTestResourceFilter.FILTER_IMPORTEXPORT);
        } finally {
            try {
                if (zipExportFilename != null) {
                    File file = new File(zipExportFilename);
                    if (file.exists()) {
                        file.delete();
                    }
                }
            } catch (Throwable t) {
                // intentionally left blank
            }
        }
    }

    /**
     * Tests the import of a folder that has been moved.<p>
     * 
     * @throws Exception if something goes wrong
     */
    public void testImportMovedFolder() throws Exception {

        CmsObject cms = getCmsObject();

        echo("Testing the import of a folder that has been moved.");
        String filename = "newtestfile.html";
        String foldername = "/folderToMove/";
        String folder2 = "/movedFolder/";
        String zipExportFilename = OpenCms.getSystemInfo().getAbsoluteRfsPathRelativeToWebInf(
            "packages/testImportExportMovedFolder.zip");

        try {
            cms.getRequestContext().setSiteRoot("/");
            // create test file & folder
            CmsResource folderBefore = cms.createResource(foldername, CmsResourceTypeFolder.getStaticTypeId());
            cms.createResource(foldername + filename, CmsResourceTypePlain.getStaticTypeId());

            // publish the folder
            cms.unlockResource(foldername);
            OpenCms.getPublishManager().publishResource(cms, foldername);
            OpenCms.getPublishManager().waitWhileRunning();

            storeResources(cms, foldername, true);

            // export the folder
            CmsVfsImportExportHandler vfsExportHandler = new CmsVfsImportExportHandler();
            vfsExportHandler.setFileName(zipExportFilename);
            List exportPaths = new ArrayList(1);
            exportPaths.add(foldername);
            vfsExportHandler.setExportPaths(exportPaths);
            vfsExportHandler.setIncludeSystem(false);
            vfsExportHandler.setIncludeUnchanged(true);
            vfsExportHandler.setExportUserdata(false);
            OpenCms.getImportExportManager().exportData(
                cms,
                vfsExportHandler,
                new CmsShellReport(cms.getRequestContext().getLocale()));

⌨️ 快捷键说明

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