# Class MBeanFactory

java.lang.Object
org.apache.catalina.mbeans.MBeanFactory

public class MBeanFactory extends Object

Author:
  Amy Roh

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final StringManager`
  `sm`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MBeanFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `createAjpConnector(String parent, String address, int port)`
  Create a new AjpConnector
  `String`
  `createDataSourceRealm(String parent, String dataSourceName, String roleNameCol, String userCredCol, String userNameCol, String userRoleTable, String userTable)`
  Create a new DataSource Realm.
  `String`
  `createHttpConnector(String parent, String address, int port)`
  Create a new HttpConnector
  `String`
  `createHttpsConnector(String parent, String address, int port)`
  Create a new HttpsConnector
  `String`
  `createJNDIRealm(String parent)`
  Create a new JNDI Realm.
  `String`
  `createMemoryRealm(String parent)`
  Create a new Memory Realm.
  `String`
  `createStandardContext(String parent, String path, String docBase)`
  Create a new StandardContext.
  `String`
  `createStandardContext(String parent, String path, String docBase, boolean xmlValidation, boolean xmlNamespaceAware)`
  Create a new StandardContext.
  `String`
  `createStandardHost(String parent, String name, String appBase, boolean autoDeploy, boolean deployOnStartup, boolean deployXML, boolean unpackWARs)`
  Create a new StandardHost.
  `String`
  `createStandardManager(String parent)`
  Create a new StandardManager.
  `String`
  `createStandardServiceEngine(String domain, String defaultHost, String baseDir)`
  Creates a new StandardService and StandardEngine.
  `String`
  `createUserDatabaseRealm(String parent, String resourceName)`
  Create a new UserDatabaseRealm.
  `String`
  `createValve(String className, String parent)`
  Create a new Valve and associate it with a `Container`.
  `String`
  `createWebappLoader(String parent)`
  Create a new Web Application Loader.
  `void`
  `removeConnector(String name)`
  Remove an existing Connector.
  `void`
  `removeContext(String contextName)`
  Remove an existing Context.
  `void`
  `removeHost(String name)`
  Remove an existing Host.
  `void`
  `removeLoader(String name)`
  Remove an existing Loader.
  `void`
  `removeManager(String name)`
  Remove an existing Manager.
  `void`
  `removeRealm(String name)`
  Remove an existing Realm.
  `void`
  `removeService(String name)`
  Remove an existing Service.
  `void`
  `removeValve(String name)`
  Remove an existing Valve.
  `void`
  `setContainer(Object container)`
  Set the container that this factory was created for.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### sm

    protected static final StringManager sm

- ## Constructor Details

  - ### MBeanFactory

    public MBeanFactory()

- ## Method Details

  - ### setContainer

    public void setContainer(Object container)
    Set the container that this factory was created for.
    Parameters:
      `container` - The associated container

  - ### createAjpConnector

    public String createAjpConnector(String parent, String address, int port) throws Exception
    Create a new AjpConnector
    Parameters:
      `parent` - MBean Name of the associated parent component
      `address` - The IP address on which to bind
      `port` - TCP port number to listen on
    Returns:
      the object name of the created connector
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createDataSourceRealm

    public String createDataSourceRealm(String parent, String dataSourceName, String roleNameCol, String userCredCol, String userNameCol, String userRoleTable, String userTable) throws Exception
    Create a new DataSource Realm.
    Parameters:
      `parent` - MBean Name of the associated parent component
      `dataSourceName` - the datasource name
      `roleNameCol` - the column name for the role names
      `userCredCol` - the column name for the user credentials
      `userNameCol` - the column name for the usernames
      `userRoleTable` - the table name for the roles table
      `userTable` - the table name for the users
    Returns:
      the object name of the created realm
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createHttpConnector

    public String createHttpConnector(String parent, String address, int port) throws Exception
    Create a new HttpConnector
    Parameters:
      `parent` - MBean Name of the associated parent component
      `address` - The IP address on which to bind
      `port` - TCP port number to listen on
    Returns:
      the object name of the created connector
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createHttpsConnector

    public String createHttpsConnector(String parent, String address, int port) throws Exception
    Create a new HttpsConnector
    Parameters:
      `parent` - MBean Name of the associated parent component
      `address` - The IP address on which to bind
      `port` - TCP port number to listen on
    Returns:
      the object name of the created connector
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createJNDIRealm

    public String createJNDIRealm(String parent) throws Exception
    Create a new JNDI Realm.
    Parameters:
      `parent` - MBean Name of the associated parent component
    Returns:
      the object name of the created realm
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createMemoryRealm

    public String createMemoryRealm(String parent) throws Exception
    Create a new Memory Realm.
    Parameters:
      `parent` - MBean Name of the associated parent component
    Returns:
      the object name of the created realm
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createStandardContext

    public String createStandardContext(String parent, String path, String docBase) throws Exception
    Create a new StandardContext.
    Parameters:
      `parent` - MBean Name of the associated parent component
      `path` - The context path for this Context
      `docBase` - Document base directory (or WAR) for this Context
    Returns:
      the object name of the created context
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createStandardContext

    public String createStandardContext(String parent, String path, String docBase, boolean xmlValidation, boolean xmlNamespaceAware) throws Exception
    Create a new StandardContext.
    Parameters:
      `parent` - MBean Name of the associated parent component
      `path` - The context path for this Context
      `docBase` - Document base directory (or WAR) for this Context
      `xmlValidation` - if XML descriptors should be validated
      `xmlNamespaceAware` - if the XML processor should namespace aware
    Returns:
      the object name of the created context
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createStandardHost

    public String createStandardHost(String parent, String name, String appBase, boolean autoDeploy, boolean deployOnStartup, boolean deployXML, boolean unpackWARs) throws Exception
    Create a new StandardHost.
    Parameters:
      `parent` - MBean Name of the associated parent component
      `name` - Unique name of this Host
      `appBase` - Application base directory name
      `autoDeploy` - Should we auto deploy?
      `deployOnStartup` - Deploy on server startup?
      `deployXML` - Should we deploy Context XML config files property?
      `unpackWARs` - Should we unpack WARs when auto deploying?
    Returns:
      the object name of the created host
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createStandardServiceEngine

    public String createStandardServiceEngine(String domain, String defaultHost, String baseDir) throws Exception
    Creates a new StandardService and StandardEngine.
    Parameters:
      `domain` - Domain name for the container instance
      `defaultHost` - Name of the default host to be used in the Engine
      `baseDir` - Base directory value for Engine
    Returns:
      the object name of the created service
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createStandardManager

    public String createStandardManager(String parent) throws Exception
    Create a new StandardManager.
    Parameters:
      `parent` - MBean Name of the associated parent component
    Returns:
      the object name of the created manager
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createUserDatabaseRealm

    public String createUserDatabaseRealm(String parent, String resourceName) throws Exception
    Create a new UserDatabaseRealm.
    Parameters:
      `parent` - MBean Name of the associated parent component
      `resourceName` - Global JNDI resource name of the associated UserDatabase
    Returns:
      the object name of the created realm
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createValve

    public String createValve(String className, String parent) throws Exception
    Create a new Valve and associate it with a `Container`.
    Parameters:
      `className` - The fully qualified class name of the `Valve` to create
      `parent` - The MBean name of the associated parent `Container`.
    Returns:
      The MBean name of the `Valve` that was created or `null` if the `Valve` does not implement `JmxEnabled`.
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### createWebappLoader

    public String createWebappLoader(String parent) throws Exception
    Create a new Web Application Loader.
    Parameters:
      `parent` - MBean Name of the associated parent component
    Returns:
      the object name of the created loader
    Throws:
      `Exception` - if an MBean cannot be created or registered

  - ### removeConnector

    public void removeConnector(String name) throws Exception
    Remove an existing Connector.
    Parameters:
      `name` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed

  - ### removeContext

    public void removeContext(String contextName) throws Exception
    Remove an existing Context.
    Parameters:
      `contextName` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed

  - ### removeHost

    public void removeHost(String name) throws Exception
    Remove an existing Host.
    Parameters:
      `name` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed

  - ### removeLoader

    public void removeLoader(String name) throws Exception
    Remove an existing Loader.
    Parameters:
      `name` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed

  - ### removeManager

    public void removeManager(String name) throws Exception
    Remove an existing Manager.
    Parameters:
      `name` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed

  - ### removeRealm

    public void removeRealm(String name) throws Exception
    Remove an existing Realm.
    Parameters:
      `name` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed

  - ### removeService

    public void removeService(String name) throws Exception
    Remove an existing Service.
    Parameters:
      `name` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed

  - ### removeValve

    public void removeValve(String name) throws Exception
    Remove an existing Valve.
    Parameters:
      `name` - MBean Name of the component to remove
    Throws:
      `Exception` - if a component cannot be removed