Package org.alfresco.util.resource
Class HierarchicalResourceLoader
- java.lang.Object
-
- org.springframework.core.io.DefaultResourceLoader
-
- org.alfresco.util.resource.HierarchicalResourceLoader
-
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
,org.springframework.core.io.ResourceLoader
public class HierarchicalResourceLoader extends org.springframework.core.io.DefaultResourceLoader implements org.springframework.beans.factory.InitializingBean
Locate resources by using a class hierarchy to drive the search. The well-known placeholderDEFAULT_DIALECT_PLACEHOLDER
is replaced with successive class names starting from thedialect class
and progressing up the hierarchy until thebase class
is reached. A full resource search using Spring'sDefaultResourceLoader
is done at each point until the resource is found or the base of the class hierarchy is reached. For example assume classpath resources:
RESOURCE 1: config/ibatis/org.hibernate.dialect.Dialect/SqlMap-DOG.xml RESOURCE 2: config/ibatis/org.hibernate.dialect.MySQLInnoDBDialect/SqlMap-DOG.xml RESOURCE 3: config/ibatis/org.hibernate.dialect.Dialect/SqlMap-CAT.xml RESOURCE 4: config/ibatis/org.hibernate.dialect.MySQLDialect/SqlMap-CAT.xml
and
dialectBaseClass = org.hibernate.dialect.Dialect
For dialect org.hibernate.dialect.MySQLInnoDBDialect the following will be returned:
config/ibatis/#resource.dialect#/SqlMap-DOG.xml == RESOURCE 2 config/ibatis/#resource.dialect#/SqlMap-CAT.xml == RESOURCE 4
For dialectorg.hibernate.dialect.MySQLDBDialect the following will be returned:
config/ibatis/#resource.dialect#/SqlMap-DOG.xml == RESOURCE 1 config/ibatis/#resource.dialect#/SqlMap-CAT.xml == RESOURCE 4
For dialectorg.hibernate.dialect.Dialect the following will be returned:
config/ibatis/#resource.dialect#/SqlMap-DOG.xml == RESOURCE 1 config/ibatis/#resource.dialect#/SqlMap-CAT.xml == RESOURCE 3
- Since:
- 3.2 (Mobile)
- Author:
- Derek Hulley
-
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_DIALECT_PLACEHOLDER
static String
DEFAULT_DIALECT_REGEX
-
Constructor Summary
Constructors Constructor Description HierarchicalResourceLoader()
Create a new HierarchicalResourceLoader.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterPropertiesSet()
org.springframework.core.io.Resource
getResource(String location)
Get a resource using the defined class hierarchy as a search path.void
setDialectBaseClass(String className)
Set the class to be used during hierarchical dialect replacement.void
setDialectClass(String className)
-
-
-
Field Detail
-
DEFAULT_DIALECT_PLACEHOLDER
public static final String DEFAULT_DIALECT_PLACEHOLDER
- See Also:
- Constant Field Values
-
DEFAULT_DIALECT_REGEX
public static final String DEFAULT_DIALECT_REGEX
- See Also:
- Constant Field Values
-
-
Method Detail
-
setDialectBaseClass
public void setDialectBaseClass(String className)
Set the class to be used during hierarchical dialect replacement. Searches for the configuration location will not go further up the hierarchy than this class.- Parameters:
className
- the name of the class or interface
-
setDialectClass
public void setDialectClass(String className)
-
afterPropertiesSet
public void afterPropertiesSet() throws Exception
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-
getResource
public org.springframework.core.io.Resource getResource(String location)
Get a resource using the defined class hierarchy as a search path.- Specified by:
getResource
in interfaceorg.springframework.core.io.ResourceLoader
- Overrides:
getResource
in classorg.springframework.core.io.DefaultResourceLoader
- Parameters:
location
- the location including aplaceholder
- Returns:
- a resource found by successive searches using class name replacement, or null if not found.
-
-