@Override
  public void init(FilterConfig fc) {
    super.init(fc);
    this.filterConfig = fc;
    containerTweaks = new ContainerTweaks();
    Config config = new Config(fc);
    // DefaultFactory defaultFactory = new DefaultFactory(config);
    Grails5535Factory defaultFactory =
        new Grails5535Factory(config); // TODO revert once Sitemesh bug is fixed
    fc.getServletContext().setAttribute(FACTORY_SERVLET_CONTEXT_ATTRIBUTE, defaultFactory);
    defaultFactory.refresh();
    FactoryHolder.setFactory(defaultFactory);

    contentProcessor = new PageParser2ContentProcessor(defaultFactory);
    decoratorMapper = defaultFactory.getDecoratorMapper();

    applicationContext =
        WebApplicationContextUtils.getRequiredWebApplicationContext(fc.getServletContext());
    layoutViewResolver = WebUtils.lookupViewResolver(applicationContext);

    final GrailsApplication grailsApplication =
        GrailsWebUtil.lookupApplication(fc.getServletContext());
    String encoding = (String) grailsApplication.getFlatConfig().get(CONFIG_OPTION_GSP_ENCODING);
    if (encoding != null) {
      defaultEncoding = encoding;
    }

    Map<String, PersistenceContextInterceptor> interceptors =
        applicationContext.getBeansOfType(PersistenceContextInterceptor.class);
    if (!interceptors.isEmpty()) {
      persistenceInterceptor = interceptors.values().iterator().next();
    }
  }
 @Override
 protected void initStrategies(ApplicationContext context) {
   super.initStrategies(context);
   initLocaleResolver(context);
   layoutViewResolver = WebUtils.lookupViewResolver(context);
 }