Example usage for javax.management Query value

List of usage examples for javax.management Query value

Introduction

In this page you can find the example usage for javax.management Query value.

Prototype

public static ValueExp value(boolean val) 

Source Link

Document

Returns a boolean value expression that can be used in any Query call that expects a ValueExp.

Usage

From source file:at.ac.tuwien.dsg.cloud.salsa.engine.utils.SystemFunctions.java

public static List<String> getEndPoints()
        throws MalformedObjectNameException, NullPointerException, UnknownHostException,
        AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException {
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    Set<ObjectName> objs = mbs.queryNames(new ObjectName("*:type=Connector,*"),
            Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
    String hostname = InetAddress.getLocalHost().getHostName();
    InetAddress[] addresses = InetAddress.getAllByName(hostname);
    ArrayList<String> endPoints = new ArrayList<>();
    for (Iterator<ObjectName> i = objs.iterator(); i.hasNext();) {
        ObjectName obj = i.next();
        String scheme = mbs.getAttribute(obj, "scheme").toString();
        String port = obj.getKeyProperty("port");
        for (InetAddress addr : addresses) {
            String host = addr.getHostAddress();
            String ep = scheme + "://" + host + ":" + port;
            endPoints.add(ep);/*from   w ww.  j  a  va 2s.  c o m*/
        }
    }
    return endPoints;
}

From source file:at.ac.tuwien.dsg.cloud.salsa.engine.utils.SystemFunctions.java

/**
 * This command try to get Port which the service is listening to. The port should be in the parameter -httpPort when running, or Tomcat port
 *
 * @return//from ww  w .  ja v  a 2  s. c  o m
 */
public static String getPort() {
    try {
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        Set<ObjectName> objs = mbs.queryNames(new ObjectName("*:type=Connector,*"),
                Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
        for (ObjectName obj : objs) {
            String port = obj.getKeyProperty("port");
            return port;
        }
    } catch (MalformedObjectNameException e) {
        EngineLogger.logger
                .error("Cannot get listening port of salsa-engine service. return 8080 as default. Error: "
                        + e.toString());
    }
    EngineLogger.logger.error("Cannot find listening port of salsa-engine service. return 8080 as default");
    return "8080";
}

From source file:org.alfresco.solr.servlet.Solr4X509ServletFilter.java

private int getHttpsPort() {
    try {//from   w w  w  .  ja  v a 2  s  .com
        MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
        QueryExp query = Query.eq(Query.attr("Scheme"), Query.value("https"));
        Set<ObjectName> objectNames = mBeanServer.queryNames(null, query);

        if (objectNames != null && objectNames.size() > 0) {
            for (ObjectName objectName : objectNames) {
                String name = objectName.toString();
                if (name.indexOf("port=") > -1) {
                    String[] parts = name.split("port=");
                    String port = parts[1];
                    try {
                        int portNum = Integer.parseInt(port);
                        return portNum;
                    } catch (NumberFormatException e) {
                        logger.error("Error parsing https port:" + port);
                        return -1;
                    }
                }
            }
        }
    } catch (Throwable t) {
        logger.error("Error getting https port:", t);
    }

    return -1;
}

From source file:org.alfresco.solr.SolrInformationServer.java

private String getHttpPort(String defaultPort) {
    try {/*  w ww.  j  ava2  s  . c  om*/
        MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
        QueryExp query = Query.and(Query.eq(Query.attr("scheme"), Query.value("http")),
                Query.eq(Query.attr("protocol"), Query.value("HTTP/1.1")));
        Set<ObjectName> objectNames = mBeanServer.queryNames(null, query);

        if (objectNames != null && objectNames.size() > 0) {
            for (ObjectName objectName : objectNames) {
                String name = objectName.toString();
                if (name.indexOf("port=") > -1) {
                    String[] parts = name.split("port=");
                    String port = parts[1];
                    try {
                        Integer.parseInt(port);
                        return port;
                    } catch (NumberFormatException e) {
                        log.error("Error parsing http port:" + port);
                        return defaultPort;
                    }
                }
            }
        }
    } catch (Throwable t) {
        log.error("Error getting https port:", t);
    }

    return defaultPort;
}

From source file:org.apache.geode.internal.process.MBeanProcessController.java

/**
 * Builds the QueryExp used to identify the target MBean.
 * /*from  www.  ja v  a  2s .c  om*/
 * @param pidAttribute the name of the MBean attribute with the process id to compare against
 * @param attributes the names of additional MBean attributes to compare with expected values
 * @param values the expected values of the specified MBean attributes
 *
 * @return the main QueryExp for matching the target MBean
 */
private QueryExp buildQueryExp(final String pidAttribute, final String[] attributes, final Object[] values) {
    QueryExp optionalAttributes = buildOptionalQueryExp(attributes, values);
    QueryExp constraint;
    if (optionalAttributes != null) {
        constraint = Query.and(optionalAttributes, Query.eq(Query.attr(pidAttribute), Query.value(pid)));
    } else {
        constraint = Query.eq(Query.attr(pidAttribute), Query.value(pid));
    }
    return constraint;
}

From source file:org.apache.geode.internal.process.MBeanProcessController.java

/**
 * Builds an optional QueryExp to aid in matching the correct MBean using additional attributes
 * with the specified values. Returns null if no attributes and values were specified during
 * construction./*from   w ww .  java2  s.c om*/
 * 
 * @param attributes the names of additional MBean attributes to compare with expected values
 * @param values the expected values of the specified MBean attributes
 *
 * @return optional QueryExp to aid in matching the correct MBean
 */
private QueryExp buildOptionalQueryExp(final String[] attributes, final Object[] values) {
    QueryExp queryExp = null;
    for (int i = 0; i < attributes.length; i++) {
        if (values[i] instanceof Boolean) {
            if (queryExp == null) {
                queryExp = Query.eq(Query.attr(attributes[i]), Query.value((Boolean) values[i]));
            } else {
                queryExp = Query.and(queryExp,
                        Query.eq(Query.attr(attributes[i]), Query.value((Boolean) values[i])));
            }
        } else if (values[i] instanceof Number) {
            if (queryExp == null) {
                queryExp = Query.eq(Query.attr(attributes[i]), Query.value((Number) values[i]));
            } else {
                queryExp = Query.and(queryExp,
                        Query.eq(Query.attr(attributes[i]), Query.value((Number) values[i])));
            }
        } else if (values[i] instanceof String) {
            if (queryExp == null) {
                queryExp = Query.eq(Query.attr(attributes[i]), Query.value((String) values[i]));
            } else {
                queryExp = Query.and(queryExp,
                        Query.eq(Query.attr(attributes[i]), Query.value((String) values[i])));
            }
        }
    }
    return queryExp;
}

From source file:org.lobzik.home_sapiens.pi.AppData.java

public static List<String> getHTTPEndPoints() throws Exception { //tomcat-specific
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    Set<ObjectName> objs = mbs.queryNames(new ObjectName("*:type=Connector,*"),
            Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
    String hostname = InetAddress.getLocalHost().getHostName();
    InetAddress[] addresses = InetAddress.getAllByName(hostname);
    ArrayList<String> endPoints = new ArrayList<String>();
    for (Iterator<ObjectName> i = objs.iterator(); i.hasNext();) {
        ObjectName obj = i.next();
        String scheme = mbs.getAttribute(obj, "scheme").toString();
        if (!scheme.toLowerCase().equals("http")) {
            continue;
        }/*from www.  ja  va  2  s.c  o  m*/
        String port = obj.getKeyProperty("port");
        for (InetAddress addr : addresses) {
            String host = addr.getHostAddress();
            String ep = scheme + "://" + host + ":" + port;
            endPoints.add(ep);
        }
    }
    return endPoints;
}

From source file:org.wso2.carbon.core.ServerManagement.java

/**
 * Wait till all service requests have been serviced. This method will only wait for a maximum
 * of {@link ServerManagement#TIMEOUT}//from w  w w  .j  av  a  2s  . c o  m
 *
 * @throws Exception If an error occurs while trying to connect to the Tomcat MBean
 */
public void waitForRequestCompletion() throws Exception {
    SecurityManager secMan = System.getSecurityManager();
    if (secMan != null) {
        secMan.checkPermission(new ManagementPermission("control"));
    }
    log.info("Waiting for request service completion...");
    /**
     * Get all MBeans with names such as Catalina:type=RequestProcessor,worker=http-9762,name=HttpRequest<n>
     * & Catalina:type=RequestProcessor,worker=http-9762,name=HttpsRequest<n>
     */
    MBeanServer mbs = ManagementFactory.getMBeanServer();
    boolean areRequestsInService;
    long start = System.currentTimeMillis();
    do {
        // Check whether there are any processors which are currently in the SERVICE stage (3)
        QueryExp query = Query.eq(Query.attr("stage"), Query.value(3)); // 3 = org.apache.coyote.Constants.STAGE_SERVICE
        Set set = mbs.queryNames(new ObjectName("Catalina:type=RequestProcessor,*"), query);
        if (set.size() > 0) {
            areRequestsInService = true;
            if (System.currentTimeMillis() - start > TIMEOUT) {
                log.warn("Timeout occurred even though there are active connections.");
                break;
            }
            Thread.sleep(2000);
        } else {
            areRequestsInService = false;
        }
    } while (areRequestsInService);
    log.info("All requests have been served.");
}