1 31 32 package org.opencms.workplace.threads; 33 34 import org.opencms.db.CmsPublishList; 35 import org.opencms.file.CmsObject; 36 import org.opencms.file.CmsProject; 37 import org.opencms.main.CmsException; 38 import org.opencms.main.CmsLog; 39 import org.opencms.main.CmsSessionInfo; 40 import org.opencms.main.CmsSessionManager; 41 import org.opencms.main.OpenCms; 42 import org.opencms.report.A_CmsReportThread; 43 import org.opencms.report.I_CmsReport; 44 import org.opencms.workplace.CmsWorkplaceSettings; 45 46 import java.util.Iterator ; 47 import java.util.List ; 48 49 import org.apache.commons.logging.Log; 50 51 60 public class CmsPublishThread extends A_CmsReportThread { 61 62 63 private static final Log LOG = CmsLog.getLog(CmsPublishThread.class); 64 65 66 private CmsObject m_cms; 67 68 69 private CmsPublishList m_publishList; 70 71 72 private CmsWorkplaceSettings m_settings; 73 74 75 private boolean m_updateSessionInfo; 76 77 87 public CmsPublishThread(CmsObject cms, CmsPublishList publishList, CmsWorkplaceSettings settings) { 88 89 super(cms, Messages.get().getBundle().key(Messages.GUI_PUBLISH_TRHEAD_NAME_0)); 90 m_cms = cms; 91 m_publishList = publishList; 92 m_settings = settings; 93 94 if (m_cms.getRequestContext().currentProject().getType() == CmsProject.PROJECT_TYPE_TEMPORARY) { 97 m_updateSessionInfo = true; 98 } else { 99 m_updateSessionInfo = false; 100 } 101 102 initHtmlReport(cms.getRequestContext().getLocale()); 103 } 104 105 108 public String getReportUpdate() { 109 110 return getReport().getReportUpdate(); 111 } 112 113 116 public void run() { 117 118 try { 119 getReport().println( 120 Messages.get().container(Messages.RPT_PUBLISH_RESOURCE_BEGIN_0), 121 I_CmsReport.FORMAT_HEADLINE); 122 getCms().publishProject(getReport(), m_publishList); 123 if (m_updateSessionInfo) { 124 updateSessionInfo(); 125 } 126 getReport().println( 127 Messages.get().container(Messages.RPT_PUBLISH_RESOURCE_END_0), 128 I_CmsReport.FORMAT_HEADLINE); 129 } catch (Exception e) { 130 getReport().println(e); 131 LOG.error(Messages.get().getBundle().key(Messages.LOG_PUBLISH_PROJECT_FAILED_0), e); 132 } 133 } 134 135 141 private void updateSessionInfo() { 142 143 CmsSessionManager sessionManager = OpenCms.getSessionManager(); 145 146 List userSessions = sessionManager.getSessionInfos(); 148 Iterator i = userSessions.iterator(); 149 while (i.hasNext()) { 150 CmsSessionInfo sessionInfo = (CmsSessionInfo)i.next(); 151 int projectId = sessionInfo.getProject(); 154 try { 155 m_cms.readProject(projectId); 156 } catch (CmsException e) { 157 sessionInfo.setProject(CmsProject.ONLINE_PROJECT_ID); 159 m_settings.setProject(CmsProject.ONLINE_PROJECT_ID); 161 getReport().println( 162 Messages.get().container( 163 Messages.RPT_PUBLISH_RESOURCE_SWITCH_PROJECT_1, 164 m_cms.getRequestContext().currentProject().getName()), 165 I_CmsReport.FORMAT_DEFAULT); 166 } 167 } 168 } 169 } | Popular Tags |