/* * RHQ Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as * published by the Free Software Foundation, and/or the GNU Lesser * General Public License, version 2.1, also as published by the Free * Software Foundation. * * This program 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 General Public License and the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU General Public License * and the GNU Lesser General Public License along with this program; * if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package org.rhq.core.pc; import org.rhq.core.pluginapi.operation.OperationResult; /** * The management interface for the {@link PluginContainer} itself. * * @author John Mazzitelli */ public interface PluginContainerMBeanImplMBean { String OBJECT_NAME = "rhq.pc:type=PluginContainer"; /** * Tells the PC to perform a manual discovery. This will execute an immediate server scan * followed, optionally, by a service scan. * * @param detailedDiscovery if true, will perform a "service scan" immediately after the "server scan". * @return the results of the discovery */ String executeDiscovery(Boolean detailedDiscovery); /** * Retrieves the plugin dependency information, show you the order in which the plugins are deployed * and the plugins they depend on. * * @return plugin dependency graph in an operation result configuration object */ OperationResult retrievePluginDependencyGraph(); /** * Retrieves information on all created and assigned plugin classloaders. There is * one plugin classloader for each deployed plugin. * * @return plugin classloader info */ OperationResult retrievePluginClassLoaderInformation(); /** * Retrieves information on all created discovery classloaders. These are created * for discovery components that need to discover resources under a parent resource where * that parent resource is from a different plugin than the discovery component. * * @return discovery classloader info */ OperationResult retrieveDiscoveryClassLoaderInformation(); /** * Retrieves information on all created and assigned resource classloaders. Each resource * is assigned a classloader. Some resources share classloaders so there will be duplicate * classloaders in the returned result. * * @return resource classloader info */ OperationResult retrieveAllResourceClassLoaderInformation(); /** * Retrieves information on all unique resource classloaders. Each resource * is assigned one of these classloaders. Some resources share classloaders, but no duplicate * classloaders will be in the returned result. The number of resources assigned to each * classloader is in the result map. * * @return unique resource classloader info */ OperationResult retrieveUniqueResourceClassLoaderInformation(); /** * Returns the number of classloaders assigned to a plugin. * * @return plugin classloader count */ int getNumberOfPluginClassLoaders(); /** * Returns the number of classloaders assigned to plugins' discovery components. * * @return discovery classloader count */ int getNumberOfDiscoveryClassLoaders(); /** * Returns the number of classloaders assigned to individual resources. * * @return resource classloader count */ int getNumberOfResourceClassLoaders(); }