Package org.ow2.easybeans.component.statistic

Source Code of org.ow2.easybeans.component.statistic.StatisticComponent

/**
* EasyBeans
* Copyright (C) 2008 Bull S.A.S.
* Contact: easybeans@ow2.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
* USA
*
* --------------------------------------------------------------------------
* $Id: StatisticComponent.java 5369 2010-02-24 14:58:19Z benoitf $
* --------------------------------------------------------------------------
*/

package org.ow2.easybeans.component.statistic;

import java.net.URL;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.ow2.easybeans.api.EZBContainer;
import org.ow2.easybeans.api.EZBJ2EEManagedObject;
import org.ow2.easybeans.api.EZBServer;
import org.ow2.easybeans.api.Factory;
import org.ow2.easybeans.api.statistic.EZBStatisticFactory;
import org.ow2.easybeans.api.statistic.EZBStatisticProvider;
import org.ow2.easybeans.component.api.EZBComponentException;
import org.ow2.easybeans.component.itf.EZBEventComponent;
import org.ow2.easybeans.component.itf.EZBJmxComponent;
import org.ow2.easybeans.component.itf.EZBStatisticComponent;
import org.ow2.easybeans.jmx.MBeansException;
import org.ow2.easybeans.jmx.MBeansHelper;
import org.ow2.easybeans.naming.J2EEManagedObjectNamingHelper;
import org.ow2.easybeans.statistic.CallCountStatisticFactory;
import org.ow2.easybeans.statistic.MeanCallTimeStatisticFactory;
import org.ow2.easybeans.statistic.TotalCallTimeStatisticFactory;
import org.ow2.util.log.Log;
import org.ow2.util.log.LogFactory;

/**
* Implementation of the EasyBeans event component.
* @author missonng
*/
public class StatisticComponent implements EZBStatisticComponent {

    /**
     * Logger.
     */
    private static Log logger = LogFactory.getLog(StatisticComponent.class);

    /**
     * The event component.
     */
    private EZBEventComponent eventComponent;

    /**
     * The JMX component.
     */
    private EZBJmxComponent jmxComponent;

    /**
     * The managed statistics map.
     */
    private Map<String, ManagedStatistic> managedStatistics = new HashMap<String, ManagedStatistic>();

    /**
     * The managed statistic providers map.
     */
    private Map<String, ManagedStatisticProvider> managedStatisticProviders = new HashMap<String, ManagedStatisticProvider>();

    /**
     * The managed statistic factories map.
     */
    private Map<String, ManagedStatisticFactory> managedStatisticFactories = new HashMap<String, ManagedStatisticFactory>();

    /**
     * Init method.<br/> This method is called before the start method.
     * @throws EZBComponentException if the initialization has failed.
     */
    public synchronized void init() throws EZBComponentException {

    }

    /**
     * Start method.<br/> This method is called after the init method.
     * @throws EZBComponentException if the start has failed.
     */
    public synchronized void start() throws EZBComponentException {
        // register core factories
        registerStatisticFactory(new CallCountStatisticFactory(this.eventComponent, this.jmxComponent));
        registerStatisticFactory(new MeanCallTimeStatisticFactory(this.eventComponent, this.jmxComponent));
        registerStatisticFactory(new TotalCallTimeStatisticFactory(this.eventComponent, this.jmxComponent));

        try {
            MBeansHelper.getInstance().registerMBean(this);
        } catch (MBeansException e) {
            // Nothing to do.
        }
        logger.info("Statistics component started with factories: " + this.managedStatisticFactories.keySet());
    }

    /**
     * Stop method.<br/> This method is called when component needs to be
     * stopped.
     * @throws EZBComponentException if the stop is failing.
     */
    public synchronized void stop() throws EZBComponentException {
        // unregister all factories
        List<ManagedStatisticFactory> managedStatisticFactories = new LinkedList<ManagedStatisticFactory>();
        managedStatisticFactories.addAll(this.managedStatisticFactories.values());
        for (ManagedStatisticFactory managedStatisticFactory : managedStatisticFactories) {
            managedStatisticFactory.destroy();
        }

        // unregister all providers
        List<ManagedStatisticProvider> managedStatisticProviders = new LinkedList<ManagedStatisticProvider>();
        managedStatisticProviders.addAll(this.managedStatisticProviders.values());
        for (ManagedStatisticProvider managedStatisticProvider : managedStatisticProviders) {
            managedStatisticProvider.destroy();
        }

        this.managedStatisticProviders.clear();
        this.managedStatisticFactories.clear();
        this.managedStatistics.clear();
        logger.info("Stopped");
    }

    /**
     * Set the event component.
     * @param eventComponent The event component.
     */
    public synchronized void setEventComponent(final EZBEventComponent eventComponent) {
        this.eventComponent = eventComponent;
    }

    /**
     * Set the jmx component.
     * @param jmxComponent The jmx component.
     */
    public synchronized void setJmxComponent(final EZBJmxComponent jmxComponent) {
        this.jmxComponent = jmxComponent;
    }

    /**
     * Register a new statistic factory.<br>
     * If a statistic factory with the same id is already registered, it will be
     * unregistered first.
     * @param statisticFactory The statistic factory to register.
     */
    public synchronized void registerStatisticFactory(final EZBStatisticFactory statisticFactory) {
        unregisterStatisticFactory(statisticFactory);

        ManagedStatisticFactory managedStatisticFactory = new ManagedStatisticFactory(statisticFactory,
                this.managedStatisticProviders, this.managedStatisticFactories);

        this.managedStatisticFactories.put(statisticFactory.getStatisticFactoryId(), managedStatisticFactory);

        for (ManagedStatistic managedStatistic : managedStatisticFactory.getManagedStatistics()) {
            this.managedStatistics.put(managedStatistic.getStatistic().getStatisticId(), managedStatistic);
        }
    }

    /**
     * Unregister a statistic factory.
     * @param statisticFactory The statistic factory to unregister.
     */
    public synchronized void unregisterStatisticFactory(final EZBStatisticFactory statisticFactory) {
        ManagedStatisticFactory managedStatisticFactory = this.managedStatisticFactories.remove(statisticFactory
                .getStatisticFactoryId());

        if (managedStatisticFactory != null) {
            for (ManagedStatistic managedStatistic : managedStatisticFactory.getManagedStatistics()) {
                this.managedStatistics.remove(managedStatistic.getStatistic().getStatisticId());
            }

            managedStatisticFactory.destroy();
        }
    }

    /**
     * Register a new J2EE managed object.<br>
     * If a J2EE managed object with the same id is already registered, it will be unregistered first.
     * @param object The J2EE managed object to register.
     */
    public synchronized void registerJ2EEManagedObject(final EZBJ2EEManagedObject object) {
        if (EZBServer.class.isAssignableFrom(object.getClass())) {
            registerEZBServer((EZBServer) object);
        } else if (EZBContainer.class.isAssignableFrom(object.getClass())) {
            registerEZBContainer((EZBContainer) object);
        } else if (Factory.class.isAssignableFrom(object.getClass())) {
            registerEZBFactory((Factory<?, ?>) object);
        }
    }

    /**
     * Unregister a J2EE managed object.
     * @param object The J2EE managed object to unregister.
     */
    public synchronized void unregisterJ2EEManagedObject(final EZBJ2EEManagedObject object) {
        if (EZBServer.class.isAssignableFrom(object.getClass())) {
            unregisterEZBServer((EZBServer) object);
        } else if (EZBContainer.class.isAssignableFrom(object.getClass())) {
            unregisterEZBContainer((EZBContainer) object);
        } else if (Factory.class.isAssignableFrom(object.getClass())) {
            unregisterEZBFactory((Factory<?, ?>) object);
        }
    }

    /**
     * Import a new Statistic factory from the given URL.<br>
     * The factory is downloaded, then compiled, then instanciated and finally
     * registered in the component.
     * @param url The file to download.
     * @throws EZBComponentException If an error occurs while downloading,
     *         compiling, instanciating, or registering the factory.
     */
    public synchronized void importStatisticFactory(final URL url) throws EZBComponentException {
        throw new EZBComponentException("Function not yet implemented");
    }

    /**
     * Get registered statistic factory ids.
     * @return The statistic factory ids.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized List<String> getStatisticFactoryIds() throws EZBComponentException {
        return new LinkedList<String>(this.managedStatisticFactories.keySet());
    }

    /**
     * Get the statistic factory mode for the given statistic factory.
     * @param statisticFactoryId The statistic factory id.
     * @return The statistic factory mode.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized STATISTIC_FACTORY_MODE getStatisticFactoryMode(final String statisticFactoryId)
            throws EZBComponentException {
        ManagedStatisticFactory managedStatisticFactory = this.managedStatisticFactories.get(statisticFactoryId);

        if (managedStatisticFactory == null) {
            throw new EZBComponentException("Cannot find statisticFactoryId " + statisticFactoryId);
        }

        return managedStatisticFactory.getManagedStatisticFactoryMode();
    }

    /**
     * Set the statistic factory mode for the given statistic factory.
     * @param statisticFactoryId The statistic factory id.
     * @param statisticFactoryMode The statistic factory mode.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized void setStatisticFactoryMode(final String statisticFactoryId,
            final STATISTIC_FACTORY_MODE statisticFactoryMode) throws EZBComponentException {
        ManagedStatisticFactory managedStatisticFactory = this.managedStatisticFactories.get(statisticFactoryId);

        if (managedStatisticFactory == null) {
            throw new EZBComponentException("Cannot find statisticFactoryId " + statisticFactoryId);
        }

        managedStatisticFactory.setManagedStatisticFactoryMode(statisticFactoryMode);
    }

    /**
     * Get the statistic factory state for the given statistic factory.
     * @param statisticFactoryId The statistic factory id.
     * @return The statistic factory state.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized boolean getStatisticFactoryState(final String statisticFactoryId) throws EZBComponentException {
        ManagedStatisticFactory managedStatisticFactory = this.managedStatisticFactories.get(statisticFactoryId);

        if (managedStatisticFactory == null) {
            throw new EZBComponentException("Cannot find statisticFactoryId " + statisticFactoryId);
        }

        return managedStatisticFactory.getManagedStatisticFactoryState();
    }

    /**
     * Set the statistic factory state for the given statistic factory.<br>
     * The statistic factory mode is automatically set to MANUAL.
     * @param statisticFactoryId The statistic factory id.
     * @param statisticFactoryState The statistic factory state
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized void setStatisticFactoryState(final String statisticFactoryId, final boolean statisticFactoryState)
            throws EZBComponentException {
        ManagedStatisticFactory managedStatisticFactory = this.managedStatisticFactories.get(statisticFactoryId);

        if (managedStatisticFactory == null) {
            throw new EZBComponentException("Cannot find statisticFactoryId " + statisticFactoryId);
        }

        managedStatisticFactory.setManagedStatisticFactoryState(statisticFactoryState);
    }

    /**
     * Get registered statistic provider ids.
     * @return The statistic provider ids.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized List<String> getStatisticProviderIds() throws EZBComponentException {
        return new LinkedList<String>(this.managedStatisticProviders.keySet());
    }

    /**
     * Get the statistic provider mode for the given statistic provider.
     * @param statisticProviderId The statistic provider id.
     * @return The statistic provider mode.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized STATISTIC_PROVIDER_MODE getStatisticProviderMode(final String statisticProviderId)
            throws EZBComponentException {
        ManagedStatisticProvider managedStatisticProvider = this.managedStatisticProviders.get(statisticProviderId);

        if (managedStatisticProvider == null) {
            throw new EZBComponentException("Cannot find statisticProviderId " + statisticProviderId);
        }

        return managedStatisticProvider.getManagedStatisticProviderMode();
    }

    /**
     * Set the statistic provider mode for the given statistic provider.
     * @param statisticProviderId The statistic provider id.
     * @param statisticProviderMode The statistic provider mode.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized void setStatisticProviderMode(final String statisticProviderId,
            final STATISTIC_PROVIDER_MODE statisticProviderMode) throws EZBComponentException {
        ManagedStatisticProvider managedStatisticProvider = this.managedStatisticProviders.get(statisticProviderId);

        if (managedStatisticProvider == null) {
            throw new EZBComponentException("Cannot find statisticProviderId " + statisticProviderId);
        }

        managedStatisticProvider.setManagedStatisticProviderMode(statisticProviderMode);
    }

    /**
     * Get the statistic provider state for the given statistic provider.
     * @param statisticProviderId The statistic provider id.
     * @return The statistic provider state.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized boolean getStatisticProviderState(final String statisticProviderId) throws EZBComponentException {
        ManagedStatisticProvider managedStatisticProvider = this.managedStatisticProviders.get(statisticProviderId);

        if (managedStatisticProvider == null) {
            throw new EZBComponentException("Cannot find statisticProviderId " + statisticProviderId);
        }

        return managedStatisticProvider.getManagedStatisticProviderState();
    }

    /**
     * Set the statistic provider state for the given statistic provider.<br>
     * The statistic provider mode is automatically set to MANUAL.
     * @param statisticProviderId The statistic provider id.
     * @param statisticProviderState The statistic provider state.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized void setStatisticProviderState(final String statisticProviderId, final boolean statisticProviderState)
            throws EZBComponentException {
        ManagedStatisticProvider managedStatisticProvider = this.managedStatisticProviders.get(statisticProviderId);

        if (managedStatisticProvider == null) {
            throw new EZBComponentException("Cannot find statisticProviderId " + statisticProviderId);
        }

        managedStatisticProvider.setManagedStatisticProviderState(statisticProviderState);
    }

    /**
     * Get all statistic ids.
     * @return The statistic ids.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized List<String> getStatisticIds() throws EZBComponentException {
        return new LinkedList<String>(this.managedStatistics.keySet());
    }

    /**
     * Get the statistic mode for the given statistic.
     * @param statisticId The statistic.
     * @return The statistic mode.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized STATISTIC_MODE getStatisticMode(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        return managedStatistic.getManagedStatisticMode();
    }

    /**
     * Set the statistic mode for the given statistic.
     * @param statisticId The statistic.
     * @param statisticMode The statistic mode.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized void setStatisticMode(final String statisticId, final STATISTIC_MODE statisticMode)
            throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        managedStatistic.setManagedStatisticMode(statisticMode);
    }

    /**
     * Get the statistic state for the given statistic.
     * @param statisticId The statistic.
     * @return The statistic state.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized boolean getStatisticState(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        return managedStatistic.getManagedStatisticState();
    }

    /**
     * Set the statistic state for the given statistic.<br>
     * The statistic mode is automatically set to MANUAL.
     * @param statisticId The statistic.
     * @param statisticStateValue The statistic state.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized void setStatisticState(final String statisticId, final boolean statisticStateValue)
            throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        managedStatistic.setManagedStatisticState(statisticStateValue);
    }

    /**
     * Reset the given statistic.
     * @param statisticId The statistic to reset.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized void resetStatistic(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        managedStatistic.getStatistic().reset();
    }

    /**
     * Get the statistic name for the given statistic.
     * @param statisticId The statistic id.
     * @return The statistic name.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized String getStatisticName(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        return managedStatistic.getStatistic().getName();
    }

    /**
     * Get the statistic description for the given statistic.
     * @param statisticId The statistic id.
     * @return The statistic description.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized String getStatisticDescription(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        return managedStatistic.getStatistic().getDescription();
    }

    /**
     * Get the statistic value for the given statistic.
     * @param statisticId The statistic id.
     * @return The statistic value.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized String getStatisticValue(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        return managedStatistic.getStatistic().getValue();
    }

    /**
     * Get the statistic start time for the given statistic.
     * @param statisticId The statistic id.
     * @return The statistic start time.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized long getStatisticStartTime(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        return managedStatistic.getStatistic().getStartTime();
    }

    /**
     * Get the statistic last sample time for the given statistic.
     * @param statisticId The statistic id.
     * @return The statistic last sample time.
     * @throws EZBComponentException If an error occurs.
     */
    public synchronized long getStatisticLastSampleTime(final String statisticId) throws EZBComponentException {
        ManagedStatistic managedStatistic = this.managedStatistics.get(statisticId);

        if (managedStatistic == null) {
            throw new EZBComponentException("Cannot find statistic " + statisticId);
        }

        return managedStatistic.getStatistic().getLastSampleTime();
    }

    /**
     * Helper method to register a EZBServer.
     * @param server The EZBServer to register.
     */
    private void registerEZBServer(final EZBServer server) {
        unregisterEZBServer(server);

        ManagedStatisticProvider managedStatisticProvider = new ManagedStatisticProvider(new EZBStatisticProvider() {
            public String getStatisticProviderId() {
                return server.getJ2EEManagedObjectId();
            }
        }, this.managedStatisticProviders, this.managedStatisticFactories);

        this.managedStatisticProviders.put(server.getJ2EEManagedObjectId(), managedStatisticProvider);

        for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
            this.managedStatistics.put(managedStatistic.getStatistic().getStatisticId(), managedStatistic);
        }
    }

    /**
     * Helper method to unregister a EZBServer.
     * @param server The EZBServer to unregister.
     */
    private void unregisterEZBServer(final EZBServer server) {
        ManagedStatisticProvider managedStatisticProvider =
            this.managedStatisticProviders.remove(server.getJ2EEManagedObjectId());

        if (managedStatisticProvider != null) {
            for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
                this.managedStatistics.remove(managedStatistic.getStatistic().getStatisticId());
            }

            managedStatisticProvider.destroy();
        }
    }

    /**
     * Helper method to register a EZBContainer.
     * @param container The EZBContainer to register.
     */
    private void registerEZBContainer(final EZBContainer container) {
        unregisterEZBContainer(container);

        ManagedStatisticProvider managedStatisticProvider = new ManagedStatisticProvider(new EZBStatisticProvider() {
            public String getStatisticProviderId() {
                return container.getJ2EEManagedObjectId();
            }
        }, this.managedStatisticProviders, this.managedStatisticFactories);

        this.managedStatisticProviders.put(container.getJ2EEManagedObjectId(), managedStatisticProvider);

        for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
            this.managedStatistics.put(managedStatistic.getStatistic().getStatisticId(), managedStatistic);
        }
    }

    /**
     * Helper method to unregister a EZBContainer.
     * @param container The EZBContainer to unregister.
     */
    private void unregisterEZBContainer(final EZBContainer container) {
        ManagedStatisticProvider managedStatisticProvider =
            this.managedStatisticProviders.remove(container.getJ2EEManagedObjectId());

        if (managedStatisticProvider != null) {
            for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
                this.managedStatistics.remove(managedStatistic.getStatistic().getStatisticId());
            }

            managedStatisticProvider.destroy();
        }
    }

    /**
     * Helper method to register a Factory.
     * @param factory The Factory to register.
     */
    private void registerEZBFactory(final Factory<?, ?> factory) {
        unregisterEZBFactory(factory);

        ManagedStatisticProvider managedStatisticProvider = new ManagedStatisticProvider(new EZBStatisticProvider() {
            public String getStatisticProviderId() {
                return factory.getJ2EEManagedObjectId();
            }
        }, this.managedStatisticProviders, this.managedStatisticFactories);

        this.managedStatisticProviders.put(factory.getJ2EEManagedObjectId(), managedStatisticProvider);

        for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
            this.managedStatistics.put(managedStatistic.getStatistic().getStatisticId(), managedStatistic);
        }

        List<String> methods = J2EEManagedObjectNamingHelper.getBeanMethodsManagedObjectIds(factory);
        for (final String method : methods) {
            managedStatisticProvider = new ManagedStatisticProvider(new EZBStatisticProvider() {
                public String getStatisticProviderId() {
                    return method;
                }
            }, this.managedStatisticProviders, this.managedStatisticFactories);

            this.managedStatisticProviders.put(method, managedStatisticProvider);

            for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
                this.managedStatistics.put(managedStatistic.getStatistic().getStatisticId(), managedStatistic);
            }
        }
    }

    /**
     * Helper method to unregister a Factory.
     * @param factory The Factory to unregister.
     */
    private void unregisterEZBFactory(final Factory<?, ?> factory) {
        ManagedStatisticProvider managedStatisticProvider =
            this.managedStatisticProviders.remove(factory.getJ2EEManagedObjectId());

        if (managedStatisticProvider != null) {
            for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
                this.managedStatistics.remove(managedStatistic.getStatistic().getStatisticId());
            }

            managedStatisticProvider.destroy();

            List<String> methods = J2EEManagedObjectNamingHelper.getBeanMethodsManagedObjectIds(factory);
            for (String method : methods) {
                managedStatisticProvider =  this.managedStatisticProviders.remove(method);

                if (managedStatisticProvider != null) {
                    for (ManagedStatistic managedStatistic : managedStatisticProvider.getManagedStatistics()) {
                        this.managedStatistics.remove(managedStatistic.getStatistic().getStatisticId());
                    }

                    managedStatisticProvider.destroy();
                }
            }
        }
    }
}
TOP

Related Classes of org.ow2.easybeans.component.statistic.StatisticComponent

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.