1 31 32 package org.opencms.workplace.threads; 33 34 import org.opencms.file.CmsObject; 35 import org.opencms.main.CmsLog; 36 import org.opencms.main.OpenCms; 37 import org.opencms.report.A_CmsReportThread; 38 39 import java.util.ArrayList ; 40 import java.util.List ; 41 import java.util.Vector ; 42 43 import org.apache.commons.logging.Log; 44 45 55 public class CmsModuleReplaceThread extends A_CmsReportThread { 56 57 58 private static final Log LOG = CmsLog.getLog(CmsModuleReplaceThread.class); 59 60 private A_CmsReportThread m_deleteThread; 61 private A_CmsReportThread m_importThread; 62 private String m_moduleName; 63 private int m_phase; 64 private String m_reportContent; 65 private String m_zipName; 66 67 74 public CmsModuleReplaceThread(CmsObject cms, String moduleName, String zipName, boolean old) { 75 76 super(cms, Messages.get().getBundle().key(Messages.GUI_REPLACE_MODULE_THREAD_NAME_1, moduleName)); 77 m_moduleName = moduleName; 78 m_zipName = zipName; 79 80 List modules = new ArrayList (); 81 modules.add(m_moduleName); 82 m_deleteThread = new CmsModuleDeleteThread(getCms(), modules, true, old); 83 m_importThread = new CmsDatabaseImportThread(getCms(), m_zipName, old); 84 if (LOG.isDebugEnabled()) { 85 LOG.debug(Messages.get().getBundle().key(Messages.LOG_REPLACE_THREAD_CONSTRUCTED_0)); 86 } 87 m_phase = 0; 88 } 89 90 97 public static Vector getModuleResources(String moduleName) { 98 99 Vector resNames = new Vector (OpenCms.getModuleManager().getModule(moduleName).getResources()); 100 return resNames; 101 } 102 103 106 public String getReportUpdate() { 107 108 switch (m_phase) { 109 case 1: 110 return m_deleteThread.getReportUpdate(); 111 case 2: 112 String content; 113 if (m_reportContent != null) { 114 content = m_reportContent; 115 m_reportContent = null; 116 } else { 117 content = ""; 118 } 119 return content + m_importThread.getReportUpdate(); 120 default: 121 } 123 return ""; 124 } 125 126 129 public void run() { 130 131 if (LOG.isDebugEnabled()) { 132 LOG.debug(Messages.get().getBundle().key(Messages.LOG_REPLACE_THREAD_START_DELETE_0)); 133 } 134 m_phase = 1; 136 m_deleteThread.run(); 137 m_reportContent = m_deleteThread.getReportUpdate(); 139 if (LOG.isDebugEnabled()) { 140 LOG.debug(Messages.get().getBundle().key(Messages.LOG_REPLACE_THREAD_START_IMPORT_0)); 141 } 142 m_phase = 2; 144 m_importThread.run(); 145 if (LOG.isDebugEnabled()) { 146 LOG.debug(Messages.get().getBundle().key(Messages.LOG_REPLACE_THREAD_FINISHED_0)); 147 } 148 } 149 } | Popular Tags |