net.przemkovv.sphinx.config.ApplicationInitializer.java Source code

Java tutorial

Introduction

Here is the source code for net.przemkovv.sphinx.config.ApplicationInitializer.java

Source

/*
 * The MIT License
 *
 * Copyright 2013 Przemyslaw Walkowiak <przemyslaw.walkowiak@put.poznan.pl>.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
package net.przemkovv.sphinx.config;

import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import me.noroutine.dust4j.DustCompilingFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.filter.HiddenHttpMethodFilter;
import org.springframework.web.filter.HttpPutFormContentFilter;
import org.springframework.web.servlet.DispatcherServlet;
import org.tuckey.web.filters.urlrewrite.UrlRewriteFilter;

/**
 *
 * @author Przemyslaw Walkowiak <przemyslaw.walkowiak@put.poznan.pl>
 */
public class ApplicationInitializer {

    private static final Logger logger = LoggerFactory.getLogger(ApplicationInitializer.class);

    //    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
        rootContext.register(ApplicationConfig.class, JpaConfig.class);
        //        rootContext.refresh();
        rootContext.setDisplayName("Sphinx Web Application");

        servletContext.addListener(new ContextLoaderListener(rootContext));
        //        servletContext.addListener(new HttpSessionEventPublisher());

        AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();
        dispatcherContext.register(WebMvcConfig.class);

        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("Spring MVC Servlet",
                new DispatcherServlet(dispatcherContext));
        dispatcher.addMapping("/app/");
        dispatcher.setLoadOnStartup(1);

        //        servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy("springSecurityFilterChain"))
        //                .addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "/*");
        servletContext.addFilter("UrlRewriteFilter", new UrlRewriteFilter()).addMappingForUrlPatterns(null, true,
                "/*");
        servletContext.addFilter("HttpMethodFilter", new HiddenHttpMethodFilter()).addMappingForUrlPatterns(null,
                true, "/*");
        servletContext.addFilter("HttpPutFormContentFilter", new HttpPutFormContentFilter())
                .addMappingForUrlPatterns(null, true, "/*");

        FilterRegistration.Dynamic charsetFilter = servletContext.addFilter("charsetFilter",
                new CharacterEncodingFilter());
        charsetFilter.setInitParameter("encoding", "UTF-8");
        charsetFilter.setInitParameter("forceEncoding", "true");
        charsetFilter.addMappingForUrlPatterns(null, true, "/*");

        FilterRegistration.Dynamic dustCompilingFilter = servletContext.addFilter("dustCompilingFilter",
                new DustCompilingFilter());
        dustCompilingFilter.setInitParameter("templateNameRegex", "/template/(.*).dust.js$");
        dustCompilingFilter.addMappingForUrlPatterns(null, true, "/*");

    }

}