All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ksc.jmx.spi.SdkMBeanRegistry Maven / Gradle / Ivy

Go to download

The KSC SDK for Java - Core module holds the classes that is used by the individual service clients to interact with KSC Web Services. Users need to depend on KSC-java-sdk artifact for accessing individual client classes.

The newest version!
/*
 * Copyright 2011-2016 Amazon Technologies, Inc.
 *
 * Licensed 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://ksyun.com/apache2.0
 *
 * This file 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 com.ksc.jmx.spi;

import org.apache.commons.logging.LogFactory;

/**
 * SPI used to register MBeans and can survive the absence of JMX.
 */
public interface SdkMBeanRegistry {
    /**
     * Returns true if the registration of the admin MBean under the given
     * object name succeeded; false otherwise.
     */
    public boolean registerMetricAdminMBean(String objectName);

    /**
     * Returns true if the unregistration of the MBean under the given object
     * name succeeded; false otherwise.
     */
    public boolean unregisterMBean(String objectName);

    /**
     * Returns true if the the MBean under the given object name is currently
     * registered; false otherwise.
     */
    public boolean isMBeanRegistered(String objectName);

    public static class Factory {
        private static final SdkMBeanRegistry registry;
        static {
            SdkMBeanRegistry rego;
            try {
                Class c = Class.forName("com.ksc.jmx.SdkMBeanRegistrySupport");
                rego = (SdkMBeanRegistry)c.newInstance();
            } catch (Exception e) {
                LogFactory
                    .getLog(SdkMBeanRegistry.class)
                    .debug("Failed to load the JMX implementation module - JMX is disabled", e);
                rego = NONE;
            }
            registry = rego;
        }
        public static SdkMBeanRegistry getMBeanRegistry() {
            return registry;
        }
    }
    
    static final SdkMBeanRegistry NONE = new SdkMBeanRegistry() {
        @Override public boolean registerMetricAdminMBean(String objectName) {
            return false;
        }
        @Override public boolean unregisterMBean(String objectName) {
            return false;
        }
        @Override public boolean isMBeanRegistered(String objectName) {
            return false;
        }
    };
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy