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.module.CmsModuleManager; 38 import org.opencms.report.A_CmsReportThread; 39 import org.opencms.report.I_CmsReport; 40 41 import java.util.Collections ; 42 import java.util.Iterator ; 43 import java.util.List ; 44 45 import org.apache.commons.logging.Log; 46 47 56 public class CmsModuleDeleteThread extends A_CmsReportThread { 57 58 59 private static final Log LOG = CmsLog.getLog(CmsModuleDeleteThread.class); 60 61 62 private List m_moduleNames; 63 64 65 private boolean m_replaceMode; 66 67 75 public CmsModuleDeleteThread(CmsObject cms, List moduleNames, boolean replaceMode, boolean old) { 76 77 super(cms, Messages.get().getBundle().key(Messages.GUI_DELETE_MODULE_THREAD_NAME_1, moduleNames)); 78 m_moduleNames = moduleNames; 79 m_replaceMode = replaceMode; 80 if (old) { 81 initOldHtmlReport(cms.getRequestContext().getLocale()); 82 } else { 83 initHtmlReport(cms.getRequestContext().getLocale()); 84 } 85 if (LOG.isDebugEnabled()) { 86 LOG.debug(Messages.get().getBundle().key(Messages.LOG_DELETE_THREAD_CONSTRUCTED_0)); 87 } 88 } 89 90 93 public String getReportUpdate() { 94 95 return getReport().getReportUpdate(); 96 } 97 98 101 public void run() { 102 103 I_CmsReport report = getReport(); 104 try { 105 if (LOG.isDebugEnabled()) { 106 LOG.debug(Messages.get().getBundle().key(Messages.LOG_DELETE_THREAD_STARTED_0)); 107 } 108 if (!m_replaceMode) { 109 OpenCms.getModuleManager().checkModuleSelectionList(m_moduleNames, null, true); 110 } 111 m_moduleNames = CmsModuleManager.topologicalSort(m_moduleNames, null); 112 Collections.reverse(m_moduleNames); 113 114 Iterator j = m_moduleNames.iterator(); 115 while (j.hasNext()) { 116 String moduleName = (String )j.next(); 117 118 moduleName = moduleName.replace('\\', '/'); 119 120 OpenCms.getModuleManager().deleteModule(getCms(), moduleName, m_replaceMode, report); 122 } 123 124 if (LOG.isDebugEnabled()) { 125 LOG.debug(Messages.get().getBundle().key(Messages.LOG_DELETE_THREAD_FINISHED_0)); 126 } 127 } catch (Exception e) { 128 report.println(e); 129 LOG.error(Messages.get().getBundle().key(Messages.LOG_MODULE_DELETE_FAILED_1, m_moduleNames), e); 130 } 131 } 132 } | Popular Tags |