You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2002/02/15 10:40:39 UTC
cvs commit: jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/service AddServiceAction.java AddServiceForm.java
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: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>