org.springframework.beans.factory.xml
Class DefaultNamespaceHandlerResolver

java.lang.Object
  extended by org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver
All Implemented Interfaces:
NamespaceHandlerResolver

public class DefaultNamespaceHandlerResolver
extends java.lang.Object
implements NamespaceHandlerResolver

Default implementation of the NamespaceHandlerResolver interface. Resolves namespace URIs to implementation classes based on the mappings contained in mapping file.

By default, this implementation looks for the mapping file at META-INF/spring.handlers, but this can be changed using the DefaultNamespaceHandlerResolver(ClassLoader, String) constructor.

Since:
2.0
Author:
Rob Harrop, Juergen Hoeller
See Also:
NamespaceHandler, DefaultBeanDefinitionDocumentReader

Field Summary
private  java.lang.ClassLoader classLoader
          ClassLoader to use for NamespaceHandler classes
static java.lang.String DEFAULT_HANDLER_MAPPINGS_LOCATION
          The location to look for the mapping files.
private  java.util.Map<java.lang.String,java.lang.Object> handlerMappings
          Stores the mappings from namespace URI to NamespaceHandler class name / instance
private  java.lang.String handlerMappingsLocation
          Resource location to search for
protected  Log logger
          Logger available to subclasses
 
Constructor Summary
DefaultNamespaceHandlerResolver()
          Create a new DefaultNamespaceHandlerResolver using the default mapping file location.
DefaultNamespaceHandlerResolver(java.lang.ClassLoader classLoader)
          Create a new DefaultNamespaceHandlerResolver using the default mapping file location.
DefaultNamespaceHandlerResolver(java.lang.ClassLoader classLoader, java.lang.String handlerMappingsLocation)
          Create a new DefaultNamespaceHandlerResolver using the supplied mapping file location.
 
Method Summary
private  java.util.Map<java.lang.String,java.lang.Object> getHandlerMappings()
          Load the specified NamespaceHandler mappings lazily.
 NamespaceHandler resolve(java.lang.String namespaceUri)
          Locate the NamespaceHandler for the supplied namespace URI from the configured mappings.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_HANDLER_MAPPINGS_LOCATION

public static final java.lang.String DEFAULT_HANDLER_MAPPINGS_LOCATION
The location to look for the mapping files. Can be present in multiple JAR files.

See Also:
Constant Field Values

logger

protected final Log logger
Logger available to subclasses


classLoader

private final java.lang.ClassLoader classLoader
ClassLoader to use for NamespaceHandler classes


handlerMappingsLocation

private final java.lang.String handlerMappingsLocation
Resource location to search for


handlerMappings

private volatile java.util.Map<java.lang.String,java.lang.Object> handlerMappings
Stores the mappings from namespace URI to NamespaceHandler class name / instance

Constructor Detail

DefaultNamespaceHandlerResolver

public DefaultNamespaceHandlerResolver()
Create a new DefaultNamespaceHandlerResolver using the default mapping file location.

This constructor will result in the thread context ClassLoader being used to load resources.

See Also:
DEFAULT_HANDLER_MAPPINGS_LOCATION

DefaultNamespaceHandlerResolver

public DefaultNamespaceHandlerResolver(java.lang.ClassLoader classLoader)
Create a new DefaultNamespaceHandlerResolver using the default mapping file location.

Parameters:
classLoader - the ClassLoader instance used to load mapping resources (may be null, in which case the thread context ClassLoader will be used)
See Also:
DEFAULT_HANDLER_MAPPINGS_LOCATION

DefaultNamespaceHandlerResolver

public DefaultNamespaceHandlerResolver(java.lang.ClassLoader classLoader,
                                       java.lang.String handlerMappingsLocation)
Create a new DefaultNamespaceHandlerResolver using the supplied mapping file location.

Parameters:
classLoader - the ClassLoader instance used to load mapping resources may be null, in which case the thread context ClassLoader will be used)
handlerMappingsLocation - the mapping file location
Method Detail

resolve

public NamespaceHandler resolve(java.lang.String namespaceUri)
Locate the NamespaceHandler for the supplied namespace URI from the configured mappings.

Specified by:
resolve in interface NamespaceHandlerResolver
Parameters:
namespaceUri - the relevant namespace URI
Returns:
the located NamespaceHandler, or null if none found

getHandlerMappings

private java.util.Map<java.lang.String,java.lang.Object> getHandlerMappings()
Load the specified NamespaceHandler mappings lazily.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object