# Class SimpleInstanceManager

java.lang.Object
org.apache.tomcat.SimpleInstanceManager

All Implemented Interfaces:
  `InstanceManager`

public class SimpleInstanceManager extends Object implements InstanceManager
SimpleInstanceManager implements the org.apache.tomcat.InstanceManager interface.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleInstanceManager()`
  Creates a new SimpleInstanceManager.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `destroyInstance(Object o)`
  Destroy the given instance, performing pre-destroy callbacks.
  `Object`
  `newInstance(Class<?> clazz)`
  Create a new instance of the given class.
  `void`
  `newInstance(Object o)`
  Perform dependency injection on the given object.
  `Object`
  `newInstance(String className)`
  Create a new instance of the class with the given name.
  `Object`
  `newInstance(String fqcn, ClassLoader classLoader)`
  Create a new instance of the class with the given name using the specified class loader.

  ### Methods inherited from class Object

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

  ### Methods inherited from interface InstanceManager

  `backgroundProcess`

- ## Constructor Details

  - ### SimpleInstanceManager

    public SimpleInstanceManager()
    Creates a new SimpleInstanceManager.

- ## Method Details

  - ### newInstance

    public Object newInstance(Class<?> clazz) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, NoSuchMethodException
    Create a new instance of the given class.
    Specified by:
      `newInstance` in interface `InstanceManager`
    Parameters:
      `clazz` - The class to instantiate
    Returns:
      the new instance
    Throws:
      `IllegalAccessException` - if the class or its nullary constructor is not accessible
      `InvocationTargetException` - if the nullary constructor throws an exception
      `NamingException` - if a naming exception is encountered
      `InstantiationException` - if this Class represents an abstract class, an interface, an array class, a primitive type, or void
      `NoSuchMethodException` - if the nullary method cannot be found

  - ### newInstance

    public Object newInstance(String className) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException, NoSuchMethodException
    Create a new instance of the class with the given name.
    Specified by:
      `newInstance` in interface `InstanceManager`
    Parameters:
      `className` - The name of the class to instantiate
    Returns:
      the new instance
    Throws:
      `IllegalAccessException` - if the class or its nullary constructor is not accessible
      `InvocationTargetException` - if the nullary constructor throws an exception
      `NamingException` - if a naming exception is encountered
      `InstantiationException` - if this Class represents an abstract class, an interface, an array class, a primitive type, or void
      `ClassNotFoundException` - if the class cannot be found
      `NoSuchMethodException` - if the nullary method cannot be found

  - ### newInstance

    public Object newInstance(String fqcn, ClassLoader classLoader) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException, NoSuchMethodException
    Create a new instance of the class with the given name using the specified class loader.
    Specified by:
      `newInstance` in interface `InstanceManager`
    Parameters:
      `fqcn` - The fully qualified class name
      `classLoader` - The class loader to use for loading the class
    Returns:
      the new instance
    Throws:
      `IllegalAccessException` - if the class or its nullary constructor is not accessible
      `InvocationTargetException` - if the nullary constructor throws an exception
      `NamingException` - if a naming exception is encountered
      `InstantiationException` - if this Class represents an abstract class, an interface, an array class, a primitive type, or void
      `ClassNotFoundException` - if the class cannot be found
      `NoSuchMethodException` - if the nullary method cannot be found

  - ### newInstance

    public void newInstance(Object o) throws IllegalAccessException, InvocationTargetException, NamingException
    Perform dependency injection on the given object.
    Specified by:
      `newInstance` in interface `InstanceManager`
    Parameters:
      `o` - The object to inject dependencies into
    Throws:
      `IllegalAccessException` - if the class or its nullary constructor is not accessible
      `InvocationTargetException` - if the nullary constructor throws an exception
      `NamingException` - if a naming exception is encountered

  - ### destroyInstance

    public void destroyInstance(Object o) throws IllegalAccessException, InvocationTargetException
    Destroy the given instance, performing pre-destroy callbacks.
    Specified by:
      `destroyInstance` in interface `InstanceManager`
    Parameters:
      `o` - The object to destroy
    Throws:
      `IllegalAccessException` - if the class or its nullary constructor is not accessible
      `InvocationTargetException` - if the nullary constructor throws an exception