Example usage for javax.management ObjectName getKeyProperty

List of usage examples for javax.management ObjectName getKeyProperty

Introduction

In this page you can find the example usage for javax.management ObjectName getKeyProperty.

Prototype

public String getKeyProperty(String property) 

Source Link

Document

Obtains the value associated with a key in a key property.

Usage

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);

}