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:
  `Serializable`, `MBeanRegistration`, `JmxEnabled`, `Lifecycle`, `NamingResources`

public class NamingResourcesImpl extends LifecycleMBeanBase implements 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 final 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

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(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(String name)`
`ContextEjb[]`
`findEjbs()`
`ContextEnvironment`
`findEnvironment(String name)`
`ContextEnvironment[]`
`findEnvironments()`
`ContextLocalEjb`
`findLocalEjb(String name)`
`ContextLocalEjb[]`
`findLocalEjbs()`
`MessageDestinationRef`
`findMessageDestinationRef(String name)`
`MessageDestinationRef[]`
`findMessageDestinationRefs()`
`ContextResource`
`findResource(String name)`
`ContextResourceEnvRef`
`findResourceEnvRef(String name)`
`ContextResourceEnvRef[]`
`findResourceEnvRefs()`
`ContextResourceLink`
`findResourceLink(String name)`
`ContextResourceLink[]`
`findResourceLinks()`
`ContextResource[]`
`findResources()`
`ContextService`
`findService(String name)`
`ContextService[]`
`findServices()`
`Object`
`getContainer()`
`protected String`
`getDomainInternal()`
Method implemented by sub-classes to identify the domain in which MBeans should be registered.
`protected 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(String name)`
Remove any EJB resource reference with the specified name.
`void`
`removeEnvironment(String name)`
Remove any environment entry with the specified name.
`void`
`removeLocalEjb(String name)`
Remove any local EJB resource reference with the specified name.
`void`
`removeMessageDestinationRef(String name)`
Remove any message destination reference with the specified name.
`void`
`removePropertyChangeListener(PropertyChangeListener listener)`
Remove a property change listener from this component.
`void`
`removeResource(String name)`
Remove any resource reference with the specified name.
`void`
`removeResourceEnvRef(String name)`
Remove any resource environment reference with the specified name.
`void`
`removeResourceLink(String name)`
Remove any resource link with the specified name.
`void`
`removeService(String name)`
Remove any web service reference with the specified name.
`void`
`setContainer(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 Details

### support

protected final PropertyChangeSupport support
The property change support for this component.

## Constructor Details

### NamingResourcesImpl

public NamingResourcesImpl()
Create a new NamingResources instance.

## Method Details

### getContainer

public Object getContainer()

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

### setContainer

public void setContainer(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(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(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(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(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(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(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(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(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(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(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(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(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(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(PropertyChangeListener listener)
Remove a property change listener from this component.

Parameters:
  `listener` - The listener to remove

### removeResource

public void removeResource(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(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(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(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 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 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`