/*
* (c) Rob Gordon 2005
*/
package org.oddjob.jmx.server;
import javax.management.MBeanException;
import javax.management.MBeanInfo;
import javax.management.ReflectionException;
import org.oddjob.jmx.client.ClientHandlerResolver;
/**
* An InterfaceManager collects together the interfaces to be exposed by
* a component.
*
*/
public interface ServerInterfaceManager {
/**
* Return the interface supported.
*
* @return The interfaces.
*/
public ClientHandlerResolver<?>[] allClientInfo();
/**
* Get the MBeanInfo based on all the interfaces.
*
* @return
*/
public MBeanInfo getMBeanInfo();
/**
* Invoke a method using the arguments as received by an MBean.
*
* @param actionName The action (method) name.
* @param params An array of object that are the parameters.
* @param signature An array of Strings that are class names.
*
* @return The result of the method call.
*
* @throws MBeanException
* @throws ReflectionException
*/
public Object invoke(String actionName, Object[] params, String[] signature)
throws MBeanException, ReflectionException;
/**
* Called when an MBean is being destroyed. Used to InterfaceHandlers
* a chance to remove listeners.
*/
public void destroy();
}