Package org.apache.catalina.deploy

## Class NamingResourcesImpl

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.deploy.NamingResourcesImpl

- All Implemented Interfaces:
    `java.io.Serializable`, `javax.management.MBeanRegistration`, `JmxEnabled`, `Lifecycle`, `NamingResources`

      public class NamingResourcesImpl
      extends LifecycleMBeanBase
      implements java.io.Serializable, NamingResources

  Holds and manages the naming resources defined in the Jakarta EE Naming Context and their associated JNDI context.
  Author:
    Remy Maucherat
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.beans.PropertyChangeSupport` | `support` | The property change support for this component.

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NamingResourcesImpl()` | Create a new NamingResources instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addEjb​(ContextEjb ejb)` | Add an EJB resource reference for this web application.
    `void` | `addEnvironment​(ContextEnvironment environment)` | Add an environment entry for this web application.
    `void` | `addLocalEjb​(ContextLocalEjb ejb)` | Add a local EJB resource reference for this web application.
    `void` | `addMessageDestinationRef​(MessageDestinationRef mdr)` | Add a message destination reference for this web application.
    `void` | `addPropertyChangeListener​(java.beans.PropertyChangeListener listener)` | Add a property change listener to this component.
    `void` | `addResource​(ContextResource resource)` | Add a resource reference for this web application.
    `void` | `addResourceEnvRef​(ContextResourceEnvRef resource)` | Add a resource environment reference for this web application.
    `void` | `addResourceLink​(ContextResourceLink resourceLink)` | Add a resource link for this web application.
    `void` | `addService​(ContextService service)` | Add a web service reference for this web application.
    `protected void` | `destroyInternal()` | Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.
    `ContextEjb` | `findEjb​(java.lang.String name)` |
    `ContextEjb[]` | `findEjbs()` |
    `ContextEnvironment` | `findEnvironment​(java.lang.String name)` |
    `ContextEnvironment[]` | `findEnvironments()` |
    `ContextLocalEjb` | `findLocalEjb​(java.lang.String name)` |
    `ContextLocalEjb[]` | `findLocalEjbs()` |
    `MessageDestinationRef` | `findMessageDestinationRef​(java.lang.String name)` |
    `MessageDestinationRef[]` | `findMessageDestinationRefs()` |
    `ContextResource` | `findResource​(java.lang.String name)` |
    `ContextResourceEnvRef` | `findResourceEnvRef​(java.lang.String name)` |
    `ContextResourceEnvRef[]` | `findResourceEnvRefs()` |
    `ContextResourceLink` | `findResourceLink​(java.lang.String name)` |
    `ContextResourceLink[]` | `findResourceLinks()` |
    `ContextResource[]` | `findResources()` |
    `ContextService` | `findService​(java.lang.String name)` |
    `ContextService[]` | `findServices()` |
    `java.lang.Object` | `getContainer()` |
    `protected java.lang.String` | `getDomainInternal()` | Method implemented by sub-classes to identify the domain in which MBeans should be registered.
    `protected java.lang.String` | `getObjectNameKeyProperties()` | Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
    `ContextTransaction` | `getTransaction()` |
    `protected void` | `initInternal()` | Sub-classes wishing to perform additional initialization should override this method, ensuring that super.initInternal() is the first call in the overriding method.
    `void` | `removeEjb​(java.lang.String name)` | Remove any EJB resource reference with the specified name.
    `void` | `removeEnvironment​(java.lang.String name)` | Remove any environment entry with the specified name.
    `void` | `removeLocalEjb​(java.lang.String name)` | Remove any local EJB resource reference with the specified name.
    `void` | `removeMessageDestinationRef​(java.lang.String name)` | Remove any message destination reference with the specified name.
    `void` | `removePropertyChangeListener​(java.beans.PropertyChangeListener listener)` | Remove a property change listener from this component.
    `void` | `removeResource​(java.lang.String name)` | Remove any resource reference with the specified name.
    `void` | `removeResourceEnvRef​(java.lang.String name)` | Remove any resource environment reference with the specified name.
    `void` | `removeResourceLink​(java.lang.String name)` | Remove any resource link with the specified name.
    `void` | `removeService​(java.lang.String name)` | Remove any web service reference with the specified name.
    `void` | `setContainer​(java.lang.Object container)` | Set the container with which the naming resources are associated.
    `void` | `setTransaction​(ContextTransaction transaction)` | Set the transaction object.
    `protected void` | `startInternal()` | Sub-classes must ensure that the state is changed to `LifecycleState.STARTING` during the execution of this method.
    `protected void` | `stopInternal()` | Sub-classes must ensure that the state is changed to `LifecycleState.STOPPING` during the execution of this method.

    - ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

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

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

- - ### Field Detail

    - #### support

          protected final java.beans.PropertyChangeSupport support

      The property change support for this component.

  - ### Constructor Detail

    - #### NamingResourcesImpl

          public NamingResourcesImpl()

      Create a new NamingResources instance.

  - ### Method Detail

    - #### getContainer

          public java.lang.Object getContainer()

      Specified by:
        `getContainer` in interface `NamingResources`
      Returns:
        the container with which the naming resources are associated.

    - #### setContainer

          public void setContainer​(java.lang.Object container)

      Set the container with which the naming resources are associated.
      Parameters:
        `container` - the associated with the resources

    - #### setTransaction

          public void setTransaction​(ContextTransaction transaction)

      Set the transaction object.
      Parameters:
        `transaction` - the transaction descriptor

    - #### getTransaction

          public ContextTransaction getTransaction()

      Returns:
        the transaction object.

    - #### addEjb

          public void addEjb​(ContextEjb ejb)

      Add an EJB resource reference for this web application.
      Parameters:
        `ejb` - New EJB resource reference

    - #### addEnvironment

          public void addEnvironment​(ContextEnvironment environment)

      Add an environment entry for this web application.
      Specified by:
        `addEnvironment` in interface `NamingResources`
      Parameters:
        `environment` - New environment entry

    - #### addLocalEjb

          public void addLocalEjb​(ContextLocalEjb ejb)

      Add a local EJB resource reference for this web application.
      Parameters:
        `ejb` - New EJB resource reference

    - #### addMessageDestinationRef

          public void addMessageDestinationRef​(MessageDestinationRef mdr)

      Add a message destination reference for this web application.
      Parameters:
        `mdr` - New message destination reference

    - #### addPropertyChangeListener

          public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)

      Add a property change listener to this component.
      Parameters:
        `listener` - The listener to add

    - #### addResource

          public void addResource​(ContextResource resource)

      Add a resource reference for this web application.
      Specified by:
        `addResource` in interface `NamingResources`
      Parameters:
        `resource` - New resource reference

    - #### addResourceEnvRef

          public void addResourceEnvRef​(ContextResourceEnvRef resource)

      Add a resource environment reference for this web application.
      Parameters:
        `resource` - The resource

    - #### addResourceLink

          public void addResourceLink​(ContextResourceLink resourceLink)

      Add a resource link for this web application.
      Specified by:
        `addResourceLink` in interface `NamingResources`
      Parameters:
        `resourceLink` - New resource link

    - #### addService

          public void addService​(ContextService service)

      Add a web service reference for this web application.
      Parameters:
        `service` - New web service reference

    - #### findEjb

          public ContextEjb findEjb​(java.lang.String name)

      Parameters:
        `name` - Name of the desired EJB resource reference
      Returns:
        the EJB resource reference with the specified name, if any; otherwise, return `null`.

    - #### findEjbs

          public ContextEjb[] findEjbs()

      Returns:
        the defined EJB resource references for this application. If there are none, a zero-length array is returned.

    - #### findEnvironment

          public ContextEnvironment findEnvironment​(java.lang.String name)

      Parameters:
        `name` - Name of the desired environment entry
      Returns:
        the environment entry with the specified name, if any; otherwise, return `null`.

    - #### findEnvironments

          public ContextEnvironment[] findEnvironments()

      Returns:
        the set of defined environment entries for this web application. If none have been defined, a zero-length array is returned.

    - #### findLocalEjb

          public ContextLocalEjb findLocalEjb​(java.lang.String name)

      Parameters:
        `name` - Name of the desired EJB resource reference
      Returns:
        the local EJB resource reference with the specified name, if any; otherwise, return `null`.

    - #### findLocalEjbs

          public ContextLocalEjb[] findLocalEjbs()

      Returns:
        the defined local EJB resource references for this application. If there are none, a zero-length array is returned.

    - #### findMessageDestinationRef

          public MessageDestinationRef findMessageDestinationRef​(java.lang.String name)

      Parameters:
        `name` - Name of the desired message destination reference
      Returns:
        the message destination reference with the specified name, if any; otherwise, return `null`.

    - #### findMessageDestinationRefs

          public MessageDestinationRef[] findMessageDestinationRefs()

      Returns:
        the defined message destination references for this application. If there are none, a zero-length array is returned.

    - #### findResource

          public ContextResource findResource​(java.lang.String name)

      Parameters:
        `name` - Name of the desired resource reference
      Returns:
        the resource reference with the specified name, if any; otherwise return `null`.

    - #### findResourceLink

          public ContextResourceLink findResourceLink​(java.lang.String name)

      Parameters:
        `name` - Name of the desired resource link
      Returns:
        the resource link with the specified name, if any; otherwise return `null`.

    - #### findResourceLinks

          public ContextResourceLink[] findResourceLinks()

      Returns:
        the defined resource links for this application. If none have been defined, a zero-length array is returned.

    - #### findResources

          public ContextResource[] findResources()

      Returns:
        the defined resource references for this application. If none have been defined, a zero-length array is returned.

    - #### findResourceEnvRef

          public ContextResourceEnvRef findResourceEnvRef​(java.lang.String name)

      Parameters:
        `name` - Name of the desired resource environment reference
      Returns:
        the resource environment reference type for the specified name, if any; otherwise return `null`.

    - #### findResourceEnvRefs

          public ContextResourceEnvRef[] findResourceEnvRefs()

      Returns:
        the set of resource environment reference names for this web application. If none have been specified, a zero-length array is returned.

    - #### findService

          public ContextService findService​(java.lang.String name)

      Parameters:
        `name` - Name of the desired web service
      Returns:
        the web service reference for the specified name, if any; otherwise return `null`.

    - #### findServices

          public ContextService[] findServices()

      Returns:
        the defined web service references for this application. If none have been defined, a zero-length array is returned.

    - #### removeEjb

          public void removeEjb​(java.lang.String name)

      Remove any EJB resource reference with the specified name.
      Parameters:
        `name` - Name of the EJB resource reference to remove

    - #### removeEnvironment

          public void removeEnvironment​(java.lang.String name)

      Remove any environment entry with the specified name.
      Specified by:
        `removeEnvironment` in interface `NamingResources`
      Parameters:
        `name` - Name of the environment entry to remove

    - #### removeLocalEjb

          public void removeLocalEjb​(java.lang.String name)

      Remove any local EJB resource reference with the specified name.
      Parameters:
        `name` - Name of the EJB resource reference to remove

    - #### removeMessageDestinationRef

          public void removeMessageDestinationRef​(java.lang.String name)

      Remove any message destination reference with the specified name.
      Parameters:
        `name` - Name of the message destination resource reference to remove

    - #### removePropertyChangeListener

          public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)

      Remove a property change listener from this component.
      Parameters:
        `listener` - The listener to remove

    - #### removeResource

          public void removeResource​(java.lang.String name)

      Remove any resource reference with the specified name.
      Specified by:
        `removeResource` in interface `NamingResources`
      Parameters:
        `name` - Name of the resource reference to remove

    - #### removeResourceEnvRef

          public void removeResourceEnvRef​(java.lang.String name)

      Remove any resource environment reference with the specified name.
      Parameters:
        `name` - Name of the resource environment reference to remove

    - #### removeResourceLink

          public void removeResourceLink​(java.lang.String name)

      Remove any resource link with the specified name.
      Specified by:
        `removeResourceLink` in interface `NamingResources`
      Parameters:
        `name` - Name of the resource link to remove

    - #### removeService

          public void removeService​(java.lang.String name)

      Remove any web service reference with the specified name.
      Parameters:
        `name` - Name of the web service reference to remove

    - #### initInternal

          protected void initInternal()
                               throws LifecycleException

      Description copied from class: `LifecycleMBeanBase`
      Sub-classes wishing to perform additional initialization should override this method, ensuring that super.initInternal() is the first call in the overriding method.
      Overrides:
        `initInternal` in class `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the initialisation fails

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Description copied from class: `LifecycleBase`
      Sub-classes must ensure that the state is changed to `LifecycleState.STARTING` during the execution of this method. Changing state will trigger the `Lifecycle.START_EVENT` event. If a component fails to start it may either throw a `LifecycleException` which will cause it's parent to fail to start or it can place itself in the error state in which case `LifecycleBase.stop()` will be called on the failed component but the parent component will continue to start normally.
      Specified by:
        `startInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - Start error occurred

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Description copied from class: `LifecycleBase`
      Sub-classes must ensure that the state is changed to `LifecycleState.STOPPING` during the execution of this method. Changing state will trigger the `Lifecycle.STOP_EVENT` event.
      Specified by:
        `stopInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - Stop error occurred

    - #### destroyInternal

          protected void destroyInternal()
                                  throws LifecycleException

      Description copied from class: `LifecycleMBeanBase`
      Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.
      Overrides:
        `destroyInternal` in class `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the destruction fails

    - #### getDomainInternal

          protected java.lang.String getDomainInternal()

      Description copied from class: `LifecycleMBeanBase`
      Method implemented by sub-classes to identify the domain in which MBeans should be registered.
      Specified by:
        `getDomainInternal` in class `LifecycleMBeanBase`
      Returns:
        The name of the domain to use to register MBeans.

    - #### getObjectNameKeyProperties

          protected java.lang.String getObjectNameKeyProperties()

      Description copied from class: `LifecycleMBeanBase`
      Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
      Specified by:
        `getObjectNameKeyProperties` in class `LifecycleMBeanBase`
      Returns:
        The string representation of the key properties component of the desired `ObjectName`