1 16 17 18 package org.apache.webapp.admin.resources; 19 20 import java.io.IOException ; 21 import java.net.URLDecoder ; 22 import java.util.ArrayList ; 23 import java.util.Iterator ; 24 import java.util.Locale ; 25 import javax.servlet.ServletException ; 26 import javax.servlet.http.HttpServletRequest ; 27 import javax.servlet.http.HttpServletResponse ; 28 import javax.servlet.http.HttpSession ; 29 import org.apache.struts.action.Action; 30 import org.apache.struts.action.ActionError; 31 import org.apache.struts.action.ActionErrors; 32 import org.apache.struts.action.ActionForm; 33 import org.apache.struts.action.ActionForward; 34 import org.apache.struts.action.ActionMapping; 35 import javax.management.Attribute ; 36 import javax.management.MBeanServer ; 37 import javax.management.MBeanServerFactory ; 38 import javax.management.QueryExp ; 39 import javax.management.Query ; 40 import javax.management.ObjectInstance ; 41 import javax.management.ObjectName ; 42 import javax.management.JMException ; 43 import javax.management.MBeanAttributeInfo ; 44 import javax.management.MBeanOperationInfo ; 45 import javax.management.MBeanInfo ; 46 import org.apache.struts.util.MessageResources; 47 import org.apache.webapp.admin.ApplicationServlet; 48 49 50 58 59 public final class SaveEnvEntryAction extends Action { 60 61 62 64 67 private MBeanServer mserver = null; 68 69 70 72 73 88 public ActionForward execute(ActionMapping mapping, 89 ActionForm form, 90 HttpServletRequest request, 91 HttpServletResponse response) 92 throws IOException , ServletException { 93 94 if (mserver == null) { 96 mserver = ((ApplicationServlet) getServlet()).getServer(); 97 } 98 MessageResources resources = getResources(request); 99 HttpSession session = request.getSession(); 100 Locale locale = getLocale(request); 101 102 if (isCancelled(request)) { 104 return (mapping.findForward("List EnvEntries Setup")); 105 } 106 107 if (!isTokenValid(request)) { 109 response.sendError 110 (HttpServletResponse.SC_BAD_REQUEST, 111 resources.getMessage(locale, "users.error.token")); 112 return (null); 113 } 114 115 EnvEntryForm envEntryForm = (EnvEntryForm) form; 117 String objectName = envEntryForm.getObjectName(); 118 119 if (objectName == null) { 121 122 String signature[] = new String [3]; 123 signature[0] = "java.lang.String"; 124 signature[1] = "java.lang.String"; 125 signature[2] = "java.lang.String"; 126 127 Object params[] = new Object [3]; 128 params[0] = envEntryForm.getName(); 129 params[1] = envEntryForm.getEntryType(); 130 params[2] = envEntryForm.getValue(); 131 132 String resourcetype = envEntryForm.getResourcetype(); 133 String path = envEntryForm.getPath(); 134 String host = envEntryForm.getHost(); 135 String domain = envEntryForm.getDomain(); 136 137 ObjectName oname = null; 138 139 try { 140 141 if (resourcetype.equals("Global")) { 142 oname = new ObjectName ( domain + 143 ResourceUtils.ENVIRONMENT_TYPE + 144 ResourceUtils.GLOBAL_TYPE + 145 ",name=" + params[0]); 146 } else if (resourcetype.equals("Context")) { 147 oname = new ObjectName ( domain + 148 ResourceUtils.ENVIRONMENT_TYPE + 149 ResourceUtils.CONTEXT_TYPE + 150 ",path=" + path + ",host=" + host + 151 ",name=" + params[0]); 152 } 153 154 if (mserver.isRegistered(oname)) { 155 ActionErrors errors = new ActionErrors(); 156 errors.add("name", 157 new ActionError("resources.invalid.env")); 158 saveErrors(request, errors); 159 return (new ActionForward(mapping.getInput())); 160 } 161 162 oname = ResourceUtils.getNamingResourceObjectName(domain, 163 resourcetype, path, host); 164 165 objectName = (String ) mserver.invoke(oname, "addEnvironment", 167 params, signature); 168 169 } catch (Exception e) { 170 171 getServlet().log 172 (resources.getMessage(locale, "users.error.invoke", 173 "addEnvironment"), e); 174 response.sendError 175 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 176 resources.getMessage(locale, "users.error.invoke", 177 "addEnvironment")); 178 return (null); 179 } 180 181 } 182 183 String attribute = null; 185 try { 186 187 ObjectName oname = new ObjectName (objectName); 189 190 attribute = "override"; 192 mserver.setAttribute 193 (oname, 194 new Attribute (attribute, new Boolean (envEntryForm.getOverride()))); 195 attribute = "description"; 196 mserver.setAttribute 197 (oname, 198 new Attribute (attribute, envEntryForm.getDescription())); 199 attribute = "type"; 200 mserver.setAttribute 201 (oname, 202 new Attribute (attribute, envEntryForm.getEntryType())); 203 attribute = "value"; 204 mserver.setAttribute 205 (oname, 206 new Attribute (attribute, envEntryForm.getValue())); 207 208 } catch (Exception e) { 209 210 getServlet().log 211 (resources.getMessage(locale, "users.error.set.attribute", 212 attribute), e); 213 response.sendError 214 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 215 resources.getMessage(locale, "users.error.set.attribute", 216 attribute)); 217 return (null); 218 219 } 220 221 return (mapping.findForward("EnvEntries List Setup")); 223 224 } 225 226 227 } 228 | Popular Tags |