# Class MBeanFactory

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

public class MBeanFactory extends Object
Factory for creating MBeans.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final StringManager`
`sm`
The string manager for this class.

## Constructor Summary

Constructors
Constructor
Description
`MBeanFactory()`
Default constructor.

## 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 Object

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

## Field Details

### sm

protected static final StringManager sm
The string manager for this class.

## Constructor Details

### MBeanFactory

public MBeanFactory()
Default constructor.

## 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, not used anymore
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