Package org.apache.servicemix.samples.clients.jmx

Source Code of org.apache.servicemix.samples.clients.jmx.Client

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicemix.samples.clients.jmx;

import java.util.HashMap;
import java.util.Map;

import javax.management.MBeanServerInvocationHandler;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;

import org.apache.servicemix.jbi.container.JBIContainer;
import org.apache.servicemix.jbi.framework.AdminCommandsServiceMBean;
import org.apache.servicemix.jbi.management.ManagementContext;

/**
* <p>
* A simple JMX client to connect to a local ServiceMix instance and monitor it.
* </p>
*
* @author jbonofre
*/
public class Client {
   
    /**
     * <p>
     * Main method to connect to ServiceMix and retrieve the list of service assemblies.
     * </p>
     *
     * @param args main arguments.
     * @throws Exception in case of error.
     */
    public static final void main(String[] args) throws Exception {
        // create the JMX service URL.
        JMXServiceURL jmxServiceUrl = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" + ManagementContext.DEFAULT_CONNECTOR_PORT + ManagementContext.DEFAULT_CONNECTOR_PATH);
        // get the JMX connector.
        String[] credentials = new String[] { "smx", "smx" };
        Map<String, Object> environment = new HashMap<String, Object>();
        environment.put(JMXConnector.CREDENTIALS, credentials);
        JMXConnector jmxConnector = JMXConnectorFactory.connect(jmxServiceUrl);
       
        // get the AdminCommandsServiceMBean
        ObjectName objectName = ManagementContext.getSystemObjectName(ManagementContext.DEFAULT_DOMAIN, JBIContainer.DEFAULT_NAME, AdminCommandsServiceMBean.class);
        AdminCommandsServiceMBean adminCommandsServiceMBean = (AdminCommandsServiceMBean) MBeanServerInvocationHandler.newProxyInstance(jmxConnector.getMBeanServerConnection(), objectName, AdminCommandsServiceMBean.class, true);
       
        // list components deployed into the SMX instance
        System.out.println("Components available: ");
        System.out.println(adminCommandsServiceMBean.listComponents(false, false, false, null, null, null));
       
        // list service assemblies into the SMX instance
        System.out.println("Service Assemblies available: ");
        System.out.println(adminCommandsServiceMBean.listServiceAssemblies(null, null, null));
       
        // close the JMX connection.
        jmxConnector.close();
    }

}
TOP

Related Classes of org.apache.servicemix.samples.clients.jmx.Client

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.