added convenient "checkRefresh" bean property to TilesConfigurer (SPR-7225)
This commit is contained in:
parent
f9736ec3f6
commit
0390c2b9fe
|
|
@ -40,6 +40,8 @@ import org.apache.tiles.definition.DefinitionsFactory;
|
||||||
import org.apache.tiles.definition.DefinitionsFactoryException;
|
import org.apache.tiles.definition.DefinitionsFactoryException;
|
||||||
import org.apache.tiles.definition.DefinitionsReader;
|
import org.apache.tiles.definition.DefinitionsReader;
|
||||||
import org.apache.tiles.definition.Refreshable;
|
import org.apache.tiles.definition.Refreshable;
|
||||||
|
import org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO;
|
||||||
|
import org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO;
|
||||||
import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
|
import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
|
||||||
import org.apache.tiles.evaluator.AttributeEvaluator;
|
import org.apache.tiles.evaluator.AttributeEvaluator;
|
||||||
import org.apache.tiles.evaluator.el.ELAttributeEvaluator;
|
import org.apache.tiles.evaluator.el.ELAttributeEvaluator;
|
||||||
|
|
@ -127,6 +129,8 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
|
|
||||||
private String[] definitions;
|
private String[] definitions;
|
||||||
|
|
||||||
|
private boolean checkRefresh = false;
|
||||||
|
|
||||||
private boolean validateDefinitions = true;
|
private boolean validateDefinitions = true;
|
||||||
|
|
||||||
private Class<? extends DefinitionsFactory> definitionsFactoryClass;
|
private Class<? extends DefinitionsFactory> definitionsFactoryClass;
|
||||||
|
|
@ -222,6 +226,16 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set whether to check Tiles definition files for a refresh at runtime.
|
||||||
|
* Default is "false".
|
||||||
|
*/
|
||||||
|
public void setCheckRefresh(boolean checkRefresh) {
|
||||||
|
this.checkRefresh = checkRefresh;
|
||||||
|
this.tilesPropertyMap.put(CachingLocaleUrlDefinitionDAO.CHECK_REFRESH_INIT_PARAMETER,
|
||||||
|
Boolean.toString(checkRefresh));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set whether to validate the Tiles XML definitions. Default is "true".
|
* Set whether to validate the Tiles XML definitions. Default is "true".
|
||||||
*/
|
*/
|
||||||
|
|
@ -417,6 +431,17 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected BaseLocaleUrlDefinitionDAO instantiateLocaleDefinitionDao(TilesApplicationContext applicationContext,
|
||||||
|
TilesRequestContextFactory contextFactory, LocaleResolver resolver) {
|
||||||
|
BaseLocaleUrlDefinitionDAO dao = super.instantiateLocaleDefinitionDao(
|
||||||
|
applicationContext, contextFactory, resolver);
|
||||||
|
if (checkRefresh && dao instanceof CachingLocaleUrlDefinitionDAO) {
|
||||||
|
((CachingLocaleUrlDefinitionDAO) dao).setCheckRefresh(checkRefresh);
|
||||||
|
}
|
||||||
|
return dao;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected DefinitionsReader createDefinitionsReader(TilesApplicationContext applicationContext,
|
protected DefinitionsReader createDefinitionsReader(TilesApplicationContext applicationContext,
|
||||||
TilesRequestContextFactory contextFactory) {
|
TilesRequestContextFactory contextFactory) {
|
||||||
|
|
@ -429,12 +454,6 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
return reader;
|
return reader;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected LocaleResolver createLocaleResolver(TilesApplicationContext applicationContext,
|
|
||||||
TilesRequestContextFactory contextFactory) {
|
|
||||||
return new SpringLocaleResolver();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected DefinitionsFactory createDefinitionsFactory(TilesApplicationContext applicationContext,
|
protected DefinitionsFactory createDefinitionsFactory(TilesApplicationContext applicationContext,
|
||||||
TilesRequestContextFactory contextFactory, LocaleResolver resolver) {
|
TilesRequestContextFactory contextFactory, LocaleResolver resolver) {
|
||||||
|
|
@ -471,6 +490,12 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
return super.createPreparerFactory(applicationContext, contextFactory);
|
return super.createPreparerFactory(applicationContext, contextFactory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected LocaleResolver createLocaleResolver(TilesApplicationContext applicationContext,
|
||||||
|
TilesRequestContextFactory contextFactory) {
|
||||||
|
return new SpringLocaleResolver();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ public class TilesConfigurerTests {
|
||||||
MockServletContext sc = new MockServletContext();
|
MockServletContext sc = new MockServletContext();
|
||||||
TilesConfigurer tc = new TilesConfigurer();
|
TilesConfigurer tc = new TilesConfigurer();
|
||||||
tc.setDefinitions(new String[] {"/org/springframework/web/servlet/view/tiles2/tiles-definitions.xml"});
|
tc.setDefinitions(new String[] {"/org/springframework/web/servlet/view/tiles2/tiles-definitions.xml"});
|
||||||
|
tc.setCheckRefresh(true);
|
||||||
tc.setServletContext(sc);
|
tc.setServletContext(sc);
|
||||||
tc.afterPropertiesSet();
|
tc.afterPropertiesSet();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue