1 31 32 package org.opencms.workplace.tools.modules; 33 34 import org.opencms.configuration.CmsConfigurationException; 35 import org.opencms.i18n.CmsMessageContainer; 36 import org.opencms.jsp.CmsJspActionElement; 37 import org.opencms.main.CmsException; 38 import org.opencms.main.CmsIllegalStateException; 39 import org.opencms.main.CmsLog; 40 import org.opencms.main.CmsSystemInfo; 41 import org.opencms.main.OpenCms; 42 import org.opencms.module.CmsModule; 43 import org.opencms.module.CmsModuleDependency; 44 import org.opencms.module.CmsModuleImportExportHandler; 45 import org.opencms.module.CmsModuleManager; 46 import org.opencms.workplace.administration.A_CmsImportFromHttp; 47 import org.opencms.workplace.tools.CmsToolDialog; 48 import org.opencms.workplace.tools.CmsToolManager; 49 50 import java.io.File ; 51 import java.io.IOException ; 52 import java.util.ArrayList ; 53 import java.util.HashMap ; 54 import java.util.Iterator ; 55 import java.util.List ; 56 import java.util.Map ; 57 58 import javax.servlet.ServletException ; 59 import javax.servlet.http.HttpServletRequest ; 60 import javax.servlet.http.HttpServletResponse ; 61 import javax.servlet.jsp.PageContext ; 62 63 import org.apache.commons.logging.Log; 64 65 74 public class CmsModulesUploadFromHttp extends A_CmsImportFromHttp { 75 76 77 public static final String DIALOG_URI = PATH_WORKPLACE + "admin/modules/modules_import.jsp"; 78 79 80 public static final String PARAM_MODULE = "module"; 81 82 83 private static final Log LOG = CmsLog.getLog(CmsModulesUploadFromHttp.class); 84 85 90 public CmsModulesUploadFromHttp(CmsJspActionElement jsp) { 91 92 super(jsp); 93 } 94 95 102 public CmsModulesUploadFromHttp(PageContext context, HttpServletRequest req, HttpServletResponse res) { 103 104 this(new CmsJspActionElement(context, req, res)); 105 } 106 107 110 public void actionCommit() throws IOException , ServletException { 111 112 try { 113 copyFileToServer(OpenCms.getSystemInfo().getPackagesRfsPath() 114 + File.separator 115 + CmsSystemInfo.FOLDER_MODULES); 116 } catch (CmsException e) { 117 setException(e); 119 return; 120 } 121 List errors = new ArrayList (); 123 CmsModule module = null; 124 try { 125 String importpath = OpenCms.getSystemInfo().getPackagesRfsPath(); 126 importpath = OpenCms.getSystemInfo().getAbsoluteRfsPathRelativeToWebInf( 127 importpath + "modules/" + getParamImportfile()); 128 module = CmsModuleImportExportHandler.readModuleFromImport(importpath); 129 130 List dependencies = OpenCms.getModuleManager().checkDependencies( 132 module, 133 CmsModuleManager.DEPENDENCY_MODE_IMPORT); 134 if (!dependencies.isEmpty()) { 135 StringBuffer dep = new StringBuffer (32); 136 for (int i = 0; i < dependencies.size(); i++) { 137 CmsModuleDependency dependency = (CmsModuleDependency)dependencies.get(i); 138 dep.append("\n - "); 139 dep.append(dependency.getName()); 140 dep.append(" (Version: "); 141 dep.append(dependency.getVersion()); 142 dep.append(")"); 143 } 144 errors.add(Messages.get().container( 145 Messages.ERR_ACTION_MODULE_DEPENDENCY_2, 146 getParamImportfile(), 147 new String (dep))); 148 } 149 150 } catch (CmsConfigurationException e) { 151 errors.add(Messages.get().container(Messages.ERR_ACTION_MODULE_UPLOAD_1, getParamImportfile())); 152 } 153 154 if (errors.isEmpty()) { 155 156 Map objects = (Map )getSettings().getListObject(); 158 if (objects != null) { 159 objects.remove(CmsModulesList.class.getName()); 160 } 161 162 Map param = new HashMap (); 164 param.put(CmsModulesList.PARAM_MODULE, getParamImportfile()); 165 param.put(PARAM_STYLE, CmsToolDialog.STYLE_NEW); 166 param.put(PARAM_CLOSELINK, CmsToolManager.linkForToolPath(getJsp(), "/modules")); 167 if (OpenCms.getModuleManager().hasModule(module.getName())) { 168 param.put(CmsModulesUploadFromServer.PARAM_MODULENAME, module.getName()); 169 getToolManager().jspForwardPage(this, CmsModulesUploadFromServer.REPLACE_ACTION_REPORT, param); 170 } else { 171 getToolManager().jspForwardPage(this, CmsModulesUploadFromServer.IMPORT_ACTION_REPORT, param); 172 } 173 } else { 174 Iterator it = errors.iterator(); 176 CmsMessageContainer msg; 177 while (it.hasNext()) { 178 msg = (CmsMessageContainer)it.next(); 180 if (LOG.isErrorEnabled()) { 181 LOG.error(msg.key(getLocale())); 182 } 183 throw new CmsIllegalStateException(msg); 185 } 186 187 } 188 189 } 190 191 194 public String getDialogReturnUri() { 195 196 return DIALOG_URI; 197 } 198 199 202 public String getImportMessage() { 203 204 return key(Messages.GUI_MODULES_IMPORT_FILE_0); 205 } 206 207 210 public String getStarttext() { 211 212 return key(Messages.GUI_MODULES_IMPORT_BLOCK_0); 213 } 214 215 218 protected void initMessages() { 219 220 addMessages(Messages.get().getBundleName()); 222 addMessages(org.opencms.workplace.Messages.get().getBundleName()); 224 addMessages(org.opencms.workplace.tools.Messages.get().getBundleName()); 225 } 226 } | Popular Tags |