package com.trs.exchange.metadata; import java.util.ArrayList; import java.util.List; import com.trs.DreamFactory; import com.trs.TRSWCMBaseTest; import com.trs.cms.CMSConstants; import com.trs.cms.content.CMSObj; import com.trs.components.metadata.center.MetaViewData; import com.trs.components.metadata.definition.MetaView; import com.trs.components.wcm.content.domain.AppendixMgr; import com.trs.components.wcm.content.persistent.Appendix; import com.trs.components.wcm.content.persistent.Channel; import com.trs.gov.common.log.MetaDataLog; import com.trs.gov.editorcenter.document.IGovDocumentMgr; import com.trs.gov.editorcenter.extVersion.ExtObjectVersionMgr; import com.trs.gov.metadata.GovMetaDataConstants; import com.trs.infra.common.WCMException; import com.trs.infra.persistent.db.DBManager; import com.trs.infra.util.CMyDateTime; import com.trs.infra.util.CMyException; public class MetaDataExchangeTest extends TRSWCMBaseTest { private static org.apache.log4j.Logger logger = org.apache.log4j.Logger .getLogger(MetaDataExchangeTest.class); /** * 测试数据入库默认的栏目ID */ private int m_nChannelIdForTest = 12; private AppendixMgr m_oAppendixMgr = (AppendixMgr) DreamFactory .createObjectById("AppendixMgr"); private IGovDocumentMgr m_oGovDocumentMgr = (IGovDocumentMgr) DreamFactory .createObjectById("IGovDocumentMgr"); private ExtObjectVersionMgr m_oVersionMgr = (ExtObjectVersionMgr) DreamFactory .createObjectById("ExtObjectVersionMgr"); /** * 保存一篇最简单的网站文章 */ public void testSaveNews() { try { MetaViewData oMetaData = saveGovNews(); assertNotNull("网站资讯入库失败?", oMetaData); } catch (Exception ex) { logger.error("测试[testSaveMetaViewData]出现异常!", ex); fail("测试[testSaveMetaViewData]出现异常!\n" + CMyException.getStackTraceText(ex)); } } /** * 保存一篇带有附件的网站文章 */ public void testSaveNewsContainsAppendix() { try { // 1 保存文章 MetaViewData oMetaData = saveGovNews(); assertNotNull("网站资讯入库失败?", oMetaData); // 2 保存附件 dowithAppendix(oMetaData, Appendix.FLAG_DOCPIC); dowithAppendix(oMetaData, Appendix.FLAG_DOCAPD); // 3 处理文章缩略图信息:Thumbfiles m_oGovDocumentMgr.updateThumbAndAttachField(oMetaData); // 4 保存版本,如果稿件太多,建议将这个环节注释掉 MetaDataLog oMetaDataLog = creatLog(oMetaData); // 保存稿件版本 m_oVersionMgr.buildVersion(oMetaData, oMetaDataLog); // 新建要将稿件版本修改为流程版本 m_oVersionMgr.updateProcess(m_oLoginUser.getName(), oMetaData.getId()); } catch (Exception ex) { logger.error("测试[testSaveNewsContainsAppendix]出现异常!", ex); fail("测试[testSaveNewsContainsAppendix]出现异常!\n" + CMyException.getStackTraceText(ex)); } } private MetaViewData saveGovNews() throws Exception, WCMException { DBManager dbMgrForWCM = DBManager.getDBManager(); // 0 定义目标视图、目标栏目 MetaView view = GovMetaDataConstants.findGovNewsView(); Channel channel = Channel.findById(m_nChannelIdForTest); assertNotNull("指定栏目【" + m_nChannelIdForTest + "】不存在!", channel); // 1 产生新的元数据 MetaViewData oMetaData = new MetaViewData(view); // 2 读取数据设置属性,这里用硬代码示例 int nFromType = 711, nSrcId = 1008; // 原始数据的类型(比如约定711表示来自于财政局)和ID oMetaData.setProperty("FromType", nFromType); oMetaData.setProperty("FromId", String.valueOf(nSrcId)); oMetaData.setProperty("DocType", CMSConstants.CONTENT_BODY_HTML); oMetaData.setProperty("ChannelId", m_nChannelIdForTest); oMetaData.setPropertyWithString("DocTitle", "测试一下数据迁移框架是否可用"); // 标题 String sHTMLContent = "
测试中文
" + "