@ -17,8 +17,9 @@
@@ -17,8 +17,9 @@
package org.springframework.web.servlet.view.tiles2 ;
import java.util.Enumeration ;
import java.util.LinkedHashMap ;
import java.util.Map ;
import java.util.Properties ;
import javax.servlet.ServletConfig ;
import javax.servlet.ServletContext ;
import org.apache.commons.logging.Log ;
@ -36,7 +37,6 @@ import org.apache.tiles.servlet.context.ServletUtil;
@@ -36,7 +37,6 @@ import org.apache.tiles.servlet.context.ServletUtil;
import org.apache.tiles.servlet.context.wildcard.WildcardServletTilesApplicationContextFactory ;
import org.apache.tiles.startup.BasicTilesInitializer ;
import org.apache.tiles.startup.TilesInitializer ;
import org.apache.tiles.web.util.ServletContextAdapter ;
import org.springframework.beans.factory.DisposableBean ;
import org.springframework.beans.factory.InitializingBean ;
@ -199,8 +199,8 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
@@ -199,8 +199,8 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
* @see # createTilesInitializer ( )
* /
public void afterPropertiesSet ( ) throws TilesException {
ServletContextAdapter adaptedContext = new ServletContextAdapter ( new DelegatingServletConfig ( ) ) ;
createTilesInitializer ( ) . initialize ( new ServletTilesApplicationContext ( adaptedContext ) ) ;
createTilesInitializer ( ) . initialize (
new PropertyExposingServletTilesApplicationContext ( this . servletContext , this . tilesPropertyMap ) ) ;
}
/ * *
@ -221,27 +221,28 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
@@ -221,27 +221,28 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
}
/ * *
* Internal implementation of the ServletConfig interface , to be passed
* to the wrapped servlet . Delegates to ServletWrappingController fields
* and methods to provide init parameters and other environment info .
* /
private class DelegatingServletConfig implements ServletConfig {
private static class PropertyExposingServletTilesApplicationContext extends ServletTilesApplicationContext {
public String getServletName ( ) {
return "TilesConfigurer" ;
}
private final Map < String , String > mergedInitParams ;
public ServletContext getServletContext ( ) {
return servletContext ;
}
public String getInitParameter ( String paramName ) {
return tilesPropertyMap . getProperty ( paramName ) ;
public PropertyExposingServletTilesApplicationContext ( ServletContext servletContext , Properties properties ) {
super ( servletContext ) ;
this . mergedInitParams = new LinkedHashMap < String , String > ( ) ;
Enumeration initParamNames = servletContext . getInitParameterNames ( ) ;
while ( initParamNames . hasMoreElements ( ) ) {
String initParamName = ( String ) initParamNames . nextElement ( ) ;
this . mergedInitParams . put ( initParamName , servletContext . getInitParameter ( initParamName ) ) ;
}
Enumeration propertyNames = properties . propertyNames ( ) ;
while ( propertyNames . hasMoreElements ( ) ) {
String propertyName = ( String ) propertyNames . nextElement ( ) ;
this . mergedInitParams . put ( propertyName , properties . getProperty ( propertyName ) ) ;
}
}
public Enumeration getInitParameterNames ( ) {
return tilesPropertyMap . keys ( ) ;
@Override
public Map < String , String > getInitParams ( ) {
return this . mergedInitParams ;
}
}