List of usage examples for javax.management ObjectName getKeyProperty
public String getKeyProperty(String property)
From source file:org.jboss.web.tomcat.tc5.Tomcat5.java
/** * Start all the connectors//from w ww . java 2 s. co m * * @throws JMException * @throws LifecycleException */ private void startAllConnectors() throws JMException, LifecycleException { /** * Not able to query the Catalina server for the services that it has * registered. A usuable solution is to query the MBean server for the * tomcat services. * http://www.jboss.com/index.html?module=bb&op=viewtopic&t=75353 */ ObjectName oname = new ObjectName("*:type=Service,*"); Set services = server.queryMBeans(oname, null); Iterator iter = services.iterator(); while (iter.hasNext()) { ObjectInstance oi = (ObjectInstance) iter.next(); ObjectName on = oi.getObjectName(); //Ignore jboss.web:* if (this.catalinaDomain.equals(on.getDomain())) continue; String key = on.getKeyProperty("serviceName"); if (key != null) { Connector[] connectors = (Connector[]) server.invoke(on, "findConnectors", new Object[0], new String[0]); for (int n = 0; n < connectors.length; n++) { Lifecycle lc = (Lifecycle) connectors[n]; lc.start(); } } } }
From source file:org.apache.webapp.admin.context.SaveContextAction.java
/** * Process the specified HTTP request, and create the corresponding HTTP * response (or forward to another web component that will create it). * Return an <code>ActionForward</code> instance describing where and how * control should be forwarded, or <code>null</code> if the response has * already been completed./*from w ww . ja v a 2 s .c o m*/ * * @param mapping The ActionMapping used to select this instance * @param actionForm The optional ActionForm bean for this request (if any) * @param request The HTTP request we are processing * @param response The HTTP response we are creating * * @exception IOException if an input/output error occurs * @exception ServletException if a servlet exception occurs */ public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // Acquire the resources that we need HttpSession session = request.getSession(); Locale locale = (Locale) session.getAttribute(Action.LOCALE_KEY); if (resources == null) { resources = getServlet().getResources(); } // Acquire a reference to the MBeanServer containing our MBeans try { mBServer = ((ApplicationServlet) getServlet()).getServer(); } catch (Throwable t) { throw new ServletException("Cannot acquire MBeanServer reference", t); } // Identify the requested action ContextForm cform = (ContextForm) form; String adminAction = cform.getAdminAction(); String cObjectName = cform.getObjectName(); String lObjectName = cform.getLoaderObjectName(); String mObjectName = cform.getManagerObjectName(); if ((cform.getPath() == null) || (cform.getPath().length() < 1)) { cform.setPath("/"); } // Perform a "Create Context" transaction (if requested) if ("Create".equals(adminAction)) { String operation = null; Object values[] = null; try { // get the parent host name String parentName = cform.getParentObjectName(); ObjectName honame = new ObjectName(parentName); // Ensure that the requested context name is unique ObjectName oname = new ObjectName(honame.getDomain() + ":j2eeType=WebModule,name=//" + honame.getKeyProperty("host") + cform.getPath() + // FIXME set J2EEApplication and J2EEServer ",J2EEApplication=none,J2EEServer=none"); if (mBServer.isRegistered(oname)) { ActionErrors errors = new ActionErrors(); errors.add("contextName", new ActionError("error.contextName.exists")); saveErrors(request, errors); return (new ActionForward(mapping.getInput())); } // Look up our MBeanFactory MBean ObjectName fname = TomcatTreeBuilder.getMBeanFactory(); // Create a new StandardContext object values = new Object[3]; values[0] = parentName; values[1] = cform.getPath(); values[2] = cform.getDocBase(); operation = "createStandardContext"; cObjectName = (String) mBServer.invoke(fname, operation, values, createStandardContextTypes); // Create a new Loader object values = new String[1]; // parent of loader is the newly created context values[0] = cObjectName.toString(); operation = "createWebappLoader"; lObjectName = (String) mBServer.invoke(fname, operation, values, createStandardLoaderTypes); // Create a new StandardManager object values = new String[1]; // parent of manager is the newly created Context values[0] = cObjectName.toString(); operation = "createStandardManager"; mObjectName = (String) mBServer.invoke(fname, operation, values, createStandardManagerTypes); if (mObjectName == null) { operation = "removeLoader"; values[0] = lObjectName; mBServer.invoke(fname, operation, values, removeContextTypes); operation = "removeContext"; values[0] = cObjectName; mBServer.invoke(fname, operation, values, removeContextTypes); Registry.getRegistry().unregisterComponent(new ObjectName(cObjectName)); request.setAttribute("warning", "error.context.directory"); return (mapping.findForward("Save Unsuccessful")); } // Add the new Context to our tree control node addToTreeControlNode(oname, cObjectName, parentName, resources, session); } catch (Exception e) { getServlet().log(resources.getMessage(locale, "users.error.invoke", operation), e); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, resources.getMessage(locale, "users.error.invoke", operation)); return (null); } } // Perform attribute updates as requested String attribute = null; try { ObjectName coname = new ObjectName(cObjectName); ObjectName loname = new ObjectName(lObjectName); ObjectName moname = new ObjectName(mObjectName); attribute = "debug"; int debug = 0; try { debug = Integer.parseInt(cform.getDebugLvl()); } catch (Throwable t) { debug = 0; } mBServer.setAttribute(coname, new Attribute("debug", new Integer(debug))); attribute = "path"; String path = ""; try { path = cform.getPath(); } catch (Throwable t) { path = ""; } mBServer.setAttribute(coname, new Attribute("path", path)); attribute = "workDir"; String workDir = ""; workDir = cform.getWorkDir(); if ((workDir != null) && (workDir.length() >= 1)) { mBServer.setAttribute(coname, new Attribute("workDir", workDir)); } attribute = "cookies"; String cookies = "false"; try { cookies = cform.getCookies(); } catch (Throwable t) { cookies = "false"; } mBServer.setAttribute(coname, new Attribute("cookies", new Boolean(cookies))); attribute = "crossContext"; String crossContext = "false"; try { crossContext = cform.getCrossContext(); } catch (Throwable t) { crossContext = "false"; } mBServer.setAttribute(coname, new Attribute("crossContext", new Boolean(crossContext))); attribute = "override"; String override = "false"; try { override = cform.getOverride(); } catch (Throwable t) { override = "false"; } mBServer.setAttribute(coname, new Attribute("override", new Boolean(override))); attribute = "reloadable"; String reloadable = "false"; try { reloadable = cform.getReloadable(); } catch (Throwable t) { reloadable = "false"; } mBServer.setAttribute(coname, new Attribute("reloadable", new Boolean(reloadable))); attribute = "swallowOutput"; String swallowOutput = "false"; try { swallowOutput = cform.getSwallowOutput(); } catch (Throwable t) { swallowOutput = "false"; } mBServer.setAttribute(coname, new Attribute("swallowOutput", new Boolean(swallowOutput))); attribute = "useNaming"; String useNaming = "false"; try { useNaming = cform.getUseNaming(); } catch (Throwable t) { useNaming = "false"; } mBServer.setAttribute(coname, new Attribute("useNaming", new Boolean(useNaming))); // Loader properties attribute = "reloadable"; try { reloadable = cform.getLdrReloadable(); } catch (Throwable t) { reloadable = "false"; } mBServer.setAttribute(loname, new Attribute("reloadable", new Boolean(reloadable))); attribute = "debug"; try { debug = Integer.parseInt(cform.getLdrDebugLvl()); } catch (Throwable t) { debug = 0; } mBServer.setAttribute(loname, new Attribute("debug", new Integer(debug))); //attribute = "checkInterval"; //int checkInterval = 15; //try { // checkInterval = Integer.parseInt(cform.getLdrCheckInterval()); //} catch (Throwable t) { // checkInterval = 15; //} //mBServer.setAttribute(loname, // new Attribute("checkInterval", new Integer(checkInterval))); // Manager properties attribute = "entropy"; String entropy = cform.getMgrSessionIDInit(); if ((entropy != null) && (entropy.length() >= 1)) { mBServer.setAttribute(moname, new Attribute("entropy", entropy)); } attribute = "debug"; try { debug = Integer.parseInt(cform.getMgrDebugLvl()); } catch (Throwable t) { debug = 0; } mBServer.setAttribute(moname, new Attribute("debug", new Integer(debug))); //attribute = "checkInterval"; //try { // checkInterval = Integer.parseInt(cform.getMgrCheckInterval()); //} catch (Throwable t) { // checkInterval = 60; //} //mBServer.setAttribute(moname, // new Attribute("checkInterval", new Integer(checkInterval))); attribute = "maxActiveSessions"; int maxActiveSessions = -1; try { maxActiveSessions = Integer.parseInt(cform.getMgrMaxSessions()); } catch (Throwable t) { maxActiveSessions = -1; } mBServer.setAttribute(moname, new Attribute("maxActiveSessions", new Integer(maxActiveSessions))); } catch (Exception e) { getServlet().log(resources.getMessage(locale, "users.error.attribute.set", attribute), e); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, resources.getMessage(locale, "users.error.attribute.set", attribute)); return (null); } // Forward to the success reporting page session.removeAttribute(mapping.getAttribute()); return (mapping.findForward("Save Successful")); }
From source file:org.apache.coyote.tomcat5.MapperListener.java
/** * Register wrapper.// www. j av a 2s . com */ private void registerWrapper(ObjectName objectName) throws Exception { // If the domain is the same with ours or the engine // name attribute is the same... - then it's ours String targetDomain = objectName.getDomain(); if (!domain.equals(targetDomain)) { try { targetDomain = (String) mBeanServer.getAttribute(objectName, "engineName"); } catch (Exception e) { // Ignore } if (!domain.equals(targetDomain)) { // not ours return; } } String wrapperName = objectName.getKeyProperty("name"); String name = objectName.getKeyProperty("WebModule"); String hostName = null; String contextName = null; if (name.startsWith("//")) { name = name.substring(2); } int slash = name.indexOf("/"); if (slash != -1) { hostName = name.substring(0, slash); contextName = name.substring(slash); } else { return; } // Special case for the root context if (contextName.equals("/")) { contextName = ""; } log.debug(sm.getString("mapperListener.registerWrapper", wrapperName, contextName)); String[] mappings = (String[]) mBeanServer.invoke(objectName, "findMappings", null, null); Object wrapper = mBeanServer.invoke(objectName, "findMappingObject", null, null); for (int i = 0; i < mappings.length; i++) { mapper.addWrapper(hostName, contextName, mappings[i], wrapper); } }
From source file:org.apache.webapp.admin.context.SaveContextAction.java
/** * Append nodes for any define resources for the specified Context. * * @param containerNode Container node for the tree control * @param containerName Object name of the parent container * @param resources The MessageResources for our localized messages * messages//from w w w .ja va 2s . com */ public void addToTreeControlNode(ObjectName oname, String containerName, String parentName, MessageResources resources, HttpSession session) throws Exception { String domain = oname.getDomain(); TreeControl control = (TreeControl) session.getAttribute("treeControlTest"); if (control != null) { TreeControlNode parentNode = control.findNode(parentName); if (parentNode != null) { String type = "Context"; String path = ""; String host = ""; String name = oname.getKeyProperty("name"); if ((name != null) && (name.length() > 0)) { name = name.substring(2); int i = name.indexOf("/"); host = name.substring(0, i); path = name.substring(i); } String nodeLabel = "Context (" + path + ")"; String encodedName = URLEncoder.encode(oname.toString()); TreeControlNode childNode = new TreeControlNode(oname.toString(), "Context.gif", nodeLabel, "EditContext.do?select=" + encodedName, "content", true, domain); parentNode.addChild(childNode); // FIXME - force a redisplay TreeControlNode subtree = new TreeControlNode("Context Resource Administration " + containerName, "folder_16_pad.gif", resources.getMessage("resources.treeBuilder.subtreeNode"), null, "content", true, domain); childNode.addChild(subtree); TreeControlNode datasources = new TreeControlNode("Context Data Sources " + containerName, "Datasource.gif", resources.getMessage("resources.treeBuilder.datasources"), "resources/listDataSources.do?resourcetype=" + URLEncoder.encode(type) + "&path=" + URLEncoder.encode(path) + "&host=" + URLEncoder.encode(host) + "&forward=" + URLEncoder.encode("DataSources List Setup"), "content", false, domain); TreeControlNode mailsessions = new TreeControlNode("Context Mail Sessions " + containerName, "Mailsession.gif", resources.getMessage("resources.treeBuilder.mailsessions"), "resources/listMailSessions.do?resourcetype=" + URLEncoder.encode(type) + "&path=" + URLEncoder.encode(path) + "&host=" + URLEncoder.encode(host) + "&forward=" + URLEncoder.encode("MailSessions List Setup"), "content", false, domain); TreeControlNode resourcelinks = new TreeControlNode("Resource Links " + containerName, "ResourceLink.gif", resources.getMessage("resources.treeBuilder.resourcelinks"), "resources/listResourceLinks.do?resourcetype=" + URLEncoder.encode(type) + "&path=" + URLEncoder.encode(path) + "&host=" + URLEncoder.encode(host) + "&forward=" + URLEncoder.encode("ResourceLinks List Setup"), "content", false, domain); TreeControlNode envs = new TreeControlNode("Context Environment Entries " + containerName, "EnvironmentEntries.gif", resources.getMessage("resources.env.entries"), "resources/listEnvEntries.do?resourcetype=" + URLEncoder.encode(type) + "&path=" + URLEncoder.encode(path) + "&host=" + URLEncoder.encode(host) + "&forward=" + URLEncoder.encode("EnvEntries List Setup"), "content", false, domain); subtree.addChild(datasources); subtree.addChild(mailsessions); subtree.addChild(resourcelinks); subtree.addChild(envs); } else { getServlet().log("Cannot find parent node '" + parentName + "'"); } } else { getServlet().log("Cannot find TreeControlNode!"); } }
From source file:org.apache.catalina.core.StandardHost.java
public ObjectName preRegister(MBeanServer server, ObjectName oname) throws Exception { ObjectName res = super.preRegister(server, oname); String name = oname.getKeyProperty("host"); if (name != null) setName(name);//from w w w .j a v a 2 s. com return res; }
From source file:org.apache.catalina.realm.RealmBase.java
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception { oname = name;/*from w ww . j a v a 2 s.c o m*/ mserver = server; domain = name.getDomain(); type = name.getKeyProperty("type"); host = name.getKeyProperty("host"); path = name.getKeyProperty("path"); return name; }
From source file:org.apache.cassandra.tools.NodeProbe.java
public Map.Entry<String, JMXEnabledThreadPoolExecutorMBean> next() { ObjectName objectName = resIter.next(); String poolName = objectName.getKeyProperty("type"); JMXEnabledThreadPoolExecutorMBean threadPoolProxy = JMX.newMBeanProxy(mbeanServerConn, objectName, JMXEnabledThreadPoolExecutorMBean.class); return new AbstractMap.SimpleImmutableEntry<String, JMXEnabledThreadPoolExecutorMBean>(poolName, threadPoolProxy);// www . ja v a 2 s.c o m }
From source file:org.apache.cassandra.tools.NodeProbe.java
private List<Entry<String, ColumnFamilyStoreMBean>> getCFSMBeans(MBeanServerConnection mbeanServerConn, String type) throws MalformedObjectNameException, IOException { ObjectName query = new ObjectName("org.apache.cassandra.db:type=" + type + ",*"); Set<ObjectName> cfObjects = mbeanServerConn.queryNames(query, null); List<Entry<String, ColumnFamilyStoreMBean>> mbeans = new ArrayList<Entry<String, ColumnFamilyStoreMBean>>( cfObjects.size());//from ww w .j a va 2 s . c o m for (ObjectName n : cfObjects) { String keyspaceName = n.getKeyProperty("keyspace"); ColumnFamilyStoreMBean cfsProxy = JMX.newMBeanProxy(mbeanServerConn, n, ColumnFamilyStoreMBean.class); mbeans.add( new AbstractMap.SimpleImmutableEntry<String, ColumnFamilyStoreMBean>(keyspaceName, cfsProxy)); } return mbeans; }
From source file:catalina.mbeans.MBeanFactory.java
/** * Remove an existing Service./*from www . j av a 2 s.co m*/ * * @param name MBean Name of the component to remove * * @exception Exception if a component cannot be removed */ public void removeService(String name) throws Exception { // Acquire a reference to the component to be removed ObjectName oname = new ObjectName(name); String serviceName = oname.getKeyProperty("name"); Server server = ServerFactory.getServer(); Service service = server.findService(serviceName); // Remove this component from its parent component server.removeService(service); }