manveen 02/02/15 01:40:39 Modified: webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service AddServiceAction.java AddServiceForm.java Log: Cleaned up validation code and creation and addition of a new service. Revision Changes Path 1.2 +111 -55 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceAction.java Index: AddServiceAction.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceAction.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AddServiceAction.java 4 Feb 2002 17:59:19 -0000 1.1 +++ AddServiceAction.java 15 Feb 2002 09:40:39 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceAction.java,v 1.1 2002/02/04 17:59:19 manveen Exp $ - * $Revision: 1.1 $ - * $Date: 2002/02/04 17:59:19 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceAction.java,v 1.2 2002/02/15 09:40:39 manveen Exp $ + * $Revision: 1.2 $ + * $Date: 2002/02/15 09:40:39 $ * * ==================================================================== * @@ -63,7 +63,9 @@ import java.util.Iterator; import java.io.IOException; +import java.util.Locale; import javax.servlet.ServletException; +import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; @@ -75,7 +77,6 @@ import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.QueryExp; -import javax.management.Query; import javax.management.ObjectInstance; import javax.management.ObjectName; import javax.management.JMException; @@ -89,12 +90,13 @@ * add service actions. * * @author Manveen Kaur - * @version $Revision: 1.1 $ $Date: 2002/02/04 17:59:19 $ + * @version $Revision: 1.2 $ $Date: 2002/02/15 09:40:39 $ */ public final class AddServiceAction extends Action { private static MBeanServer mBServer = null; + private static MessageResources resources = null; // --------------------------------------------------------- Public Methods @@ -120,80 +122,134 @@ HttpServletResponse response) throws IOException, ServletException { - try{ - - // front end validation and checking. - // =================================================== - MessageResources messages = getResources(); - - // Validate the request parameters specified by the user - ActionErrors errors = new ActionErrors(); - - // Report any errors we have discovered back to the original form - if (!errors.empty()) { - saveErrors(request, errors); - return (new ActionForward(mapping.getInput())); - } - - if(mBServer == null) { - ApplicationServlet servlet = (ApplicationServlet)getServlet(); - mBServer = servlet.getServer(); - } + // Look up the components we will be using as needed + if (mBServer == null) { + mBServer = ((ApplicationServlet) getServlet()).getServer(); + } + if (resources == null) { + resources = getServlet().getResources(); + } + HttpSession session = request.getSession(); + Locale locale = (Locale) session.getAttribute(Action.LOCALE_KEY); + + // Validate the request parameters specified by the user + ActionErrors errors = new ActionErrors(); + + // Report any errors we have discovered back to the original form + if (!errors.empty()) { + saveErrors(request, errors); + return (new ActionForward(mapping.getInput())); + } + + String serviceName = request.getParameter("serviceName"); + String engineName = request.getParameter("engineName"); + String debugLvlText = request.getParameter("debugLvl"); + String defaultHost = request.getParameter("defaultHost"); + + ObjectInstance mBeanFactory = null; + + // unique mBean name of the new service that is created. + String newService = null; + + // Get hold of the parent server. + ObjectName server = null; + try { + Iterator serverItr = + mBServer.queryMBeans(new ObjectName(TomcatTreeBuilder.SERVER_TYPE + + TomcatTreeBuilder.WILDCARD), null).iterator(); - String serviceName = request.getParameter("serviceName"); + ObjectInstance objInstance = (ObjectInstance)serverItr.next(); + server = (objInstance).getObjectName(); - Iterator serviceItr = - mBServer.queryMBeans(new ObjectName( - TomcatTreeBuilder.ENGINE_TYPE + - ",service=" + serviceName), - null).iterator(); - - ObjectName serviceObjName = - ((ObjectInstance)serviceItr.next()).getObjectName(); - - String engineName = request.getParameter("engineName"); - String debugLvlText = request.getParameter("debugLvl"); - String defaultHost = request.getParameter("defaultHost"); + } catch (Exception e) { + throw new ServletException("Error getting server mBean", e); + } + + // invoke createStandardService operation on the mBean factory. + try { + mBeanFactory = TomcatTreeBuilder.getMBeanFactory(); + ObjectName factory = mBeanFactory.getObjectName(); + + Object[] params = new Object[2]; + // mBean name of the parent server + params[0] = new String(server.toString()); + // name of the new service to be added + params[1] = new String(serviceName); + + String[] types = new String[2]; + types[0]= "java.lang.String"; + types[1]= "java.lang.String"; + + newService = (String) + mBServer.invoke(factory, "createStandardService", params, types); + + } catch (Exception e) { + getServlet().log + (resources.getMessage(locale, "users.error.invoke","createStandardService"), e); + response.sendError + (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + resources.getMessage(locale, "users.error.invoke","createStandardService")); + return (null); + } + + // add the newly created service to the server mBean. + try { + Object[] params = new Object[1]; + params[0] = new String(newService); + + String[] type = new String[1]; + type[0]= "java.lang.String"; + + mBServer.invoke(server, "addService", params, type); + + } catch (Exception e) { + getServlet().log + (resources.getMessage(locale, "users.error.invoke", + "addService"), e); + response.sendError + (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + resources.getMessage(locale, "users.error.invoke", + "addService")); + return (null); + } + + // set the attributes read from the form to this newly created service. + String attribute = null; + try{ + ObjectName serviceObjName = new ObjectName(newService); if (engineName != null) { - mBServer.setAttribute(serviceObjName, - new Attribute(SetUpServiceAction.NAME_PROP_NAME, + new Attribute(attribute=SetUpServiceAction.NAME_PROP_NAME, engineName)); } if(debugLvlText != null) { Integer debugLvl = new Integer(debugLvlText); mBServer.setAttribute(serviceObjName, - new Attribute(SetUpServiceAction.DEBUG_PROP_NAME, + new Attribute(attribute=SetUpServiceAction.DEBUG_PROP_NAME, debugLvl)); } if(defaultHost != null) { - - /* - if ((" ").equals(defaultHost)) { - // no default host value set. - // remove this attribute. - TBD: FIX ME - if needed. - } - */ mBServer.setAttribute(serviceObjName, new Attribute(SetUpServiceAction.HOST_PROP_NAME, defaultHost)); - } - - }catch(Throwable t){ - t.printStackTrace(System.out); - //forward to error page + }catch(Exception e){ + getServlet().log + (resources.getMessage(locale, "users.error.set.attribute", + attribute), e); + response.sendError + (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + resources.getMessage(locale, "users.error.set.attribute", + attribute)); + return (null); } if (servlet.getDebug() >= 1) servlet.log(" Forwarding to success page"); - // Forward back to the test page return (mapping.findForward("Save Successful")); - } } 1.3 +44 -81 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceForm.java Index: AddServiceForm.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceForm.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AddServiceForm.java 8 Feb 2002 01:13:42 -0000 1.2 +++ AddServiceForm.java 15 Feb 2002 09:40:39 -0000 1.3 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceForm.java,v 1.2 2002/02/08 01:13:42 manveen Exp $ - * $Revision: 1.2 $ - * $Date: 2002/02/08 01:13:42 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service/AddServiceForm.java,v 1.3 2002/02/15 09:40:39 manveen Exp $ + * $Revision: 1.3 $ + * $Date: 2002/02/15 09:40:39 $ * * ==================================================================== * @@ -59,7 +59,6 @@ * */ - package org.apache.webapp.admin.service; import javax.servlet.http.HttpServletRequest; @@ -73,33 +72,18 @@ import javax.management.MBeanServer; import javax.management.ObjectInstance; import javax.management.ObjectName; -import javax.management.InstanceAlreadyExistsException; -import javax.management.modelmbean.ModelMBean; +import javax.servlet.ServletException; import org.apache.webapp.admin.ApplicationServlet; import org.apache.webapp.admin.TomcatTreeBuilder; -import javax.management.MBeanAttributeInfo; -import javax.management.MBeanOperationInfo; -import javax.management.MBeanInfo; - -import javax.management.modelmbean.ModelMBean; -import javax.management.modelmbean.ModelMBeanInfo; - -import org.apache.commons.modeler.ManagedBean; import org.apache.commons.modeler.Registry; -import javax.management.RuntimeOperationsException; -import javax.management.MBeanException; -import java.lang.RuntimeException; - -//import org.apache.catalina.mbeans.MBeanUtils; - /** * Form bean for the add service page. * * @author Manveen Kaur - * @version $Revision: 1.2 $ $Date: 2002/02/08 01:13:42 $ + * @version $Revision: 1.3 $ $Date: 2002/02/15 09:40:39 $ */ public final class AddServiceForm extends ActionForm { @@ -265,80 +249,59 @@ ActionErrors errors = new ActionErrors(); String submit = request.getParameter("submit"); - ObjectInstance mBeanFactory = null; if (submit != null) { if ((serviceName == null) || (serviceName.length() < 1)) { errors.add("serviceName", new ActionError("error.serviceName.required")); - } else { - - // try to create a new service. - try { - - ApplicationServlet servlet = (ApplicationServlet)getServlet(); - mBServer = servlet.getServer(); - - // Get hold of the parent server. - Iterator serverItr = - mBServer.queryMBeans(new ObjectName(TomcatTreeBuilder.SERVER_TYPE + - TomcatTreeBuilder.WILDCARD), null).iterator(); - - ObjectInstance objInstance = (ObjectInstance)serverItr.next(); - ObjectName server = (objInstance).getObjectName(); - - mBeanFactory = TomcatTreeBuilder.getMBeanFactory(); - ObjectName factory = mBeanFactory.getObjectName(); - - Object[] params = new Object[2]; - // mBean name of the parent server - params[0] = new String(server.toString()); - // name of the new service to be added - params[1] = new String(serviceName); - - String[] types = new String[2]; - types[0]= "java.lang.String"; - types[1]= "java.lang.String"; - - // get a unique service name for the new service. - String newService = (String) - mBServer.invoke(factory, "createStandardService", params, types); - - // add this newly created service to the server mBean. - Object[] serviceParam = new Object[1]; - serviceParam[0] = new String(newService); - - String[] type = new String[1]; - type[0]= "java.lang.String"; - - // System.out.println("Created Service " + newService); - mBServer.invoke(server, "addService", serviceParam, type); - - } catch (RuntimeOperationsException ex) { - RuntimeException e = ex.getTargetException(); - // print the root exception - if (e instanceof RuntimeOperationsException){ - ((RuntimeOperationsException)e).getTargetException().printStackTrace(); - } else { - e.printStackTrace(); - } - } catch (Throwable t) { - t.printStackTrace(); - } - } - if ((engineName == null) || (engineName.length() < 1)) + if ((engineName == null) || (engineName.length() < 1)) { errors.add("engineName", new ActionError("error.engineName.required")); + } - if ((defaultHost == null) || (defaultHost.length() < 1)) + if ((defaultHost == null) || (defaultHost.length() < 1)) { errors.add("defaultHost", new ActionError("error.defaultHost.required")); + } + + Iterator serviceItr = null; + // service name must be unique. + try { + + ApplicationServlet servlet = (ApplicationServlet)getServlet(); + mBServer = servlet.getServer(); + + serviceItr = + mBServer.queryMBeans(new ObjectName( + TomcatTreeBuilder.SERVICE_TYPE + TomcatTreeBuilder.WILDCARD), + null).iterator(); + + } catch (Exception e) { + getServlet().log("Error getting service mBean", e); + } + + try { + // check if a service with this name already exists + while(serviceItr.hasNext()){ + ObjectInstance service = (ObjectInstance)serviceItr.next(); + + String name = + (String)mBServer.getAttribute(service.getObjectName(),"name"); + + // error service name already exists + if (name.equalsIgnoreCase(serviceName)) { + errors.add("serviceName", + new ActionError("error.serviceName.exists")); + } + } + } catch (Exception e) { + getServlet().log("Error getting attribute name", e); + } } - return errors; } - } +
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>