package org.atricore.idbus.bundles.apache.tiles;
import org.apache.tiles.definition.DefinitionsFactory;
import org.apache.tiles.preparer.PreparerFactory;
import org.apache.tiles.startup.BasicTilesInitializer;
import org.apache.tiles.startup.TilesInitializer;
import org.springframework.web.servlet.view.tiles2.TilesConfigurer;
/**
* @author <a href=mailto:sgonzalez@atricore.org>Sebastian Gonzalez Oyuela</a>
*/
public class OsgiTilesConfigurer extends TilesConfigurer {
protected String[] definitions;
protected Class<? extends DefinitionsFactory> definitionsFactoryClass;
protected Class<? extends PreparerFactory> preparerFactoryClass;
protected boolean validateDefinitions;
@Override
public void setValidateDefinitions(boolean validateDefinitions) {
super.setValidateDefinitions(validateDefinitions);
this.validateDefinitions = validateDefinitions;
}
@Override
public void setDefinitions(String[] definitions) {
super.setDefinitions(definitions);
this.definitions = definitions;
}
@Override
public void setDefinitionsFactoryClass(Class<? extends DefinitionsFactory> definitionsFactoryClass) {
super.setDefinitionsFactoryClass(definitionsFactoryClass);
this.definitionsFactoryClass = definitionsFactoryClass;
}
@Override
public void setPreparerFactoryClass(Class<? extends PreparerFactory> preparerFactoryClass) {
super.setPreparerFactoryClass(preparerFactoryClass);
this.preparerFactoryClass = preparerFactoryClass;
}
/**
* Creates a new instance of {@link org.apache.tiles.startup.BasicTilesInitializer}.
* <p>Override it to use a different initializer.
* @see org.apache.tiles.web.startup.TilesListener#createTilesInitializer()
*/
protected TilesInitializer createTilesInitializer() {
OsgiTilesInitializer i = new OsgiTilesInitializer();
i.setDefinitions(definitions);
i.setDefinitionsFactoryClass(definitionsFactoryClass);
i.setPreparerFactoryClass(preparerFactoryClass);
i.setUseMutableTilesContainer(false);
i.setValidateDefinitions(true);
return i;
}
}