com.uimirror.auth.conf.WebAppInitializer.java Source code

Java tutorial

Introduction

Here is the source code for com.uimirror.auth.conf.WebAppInitializer.java

Source

/*******************************************************************************
 * Copyright (c) 2012 Uimirror.com.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Uimirror License v1.0
 * which accompanies this distribution, and is available at
 * http://www.legal.uimirror.com/code/policy
 *
 * Contributors:
 * Uimirror. - initial API and implementation
 *******************************************************************************/
package com.uimirror.auth.conf;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.glassfish.jersey.servlet.ServletContainer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

import com.wordnik.swagger.jaxrs.config.BeanConfig;
import com.wordnik.swagger.jaxrs.reader.BasicJaxrsReader;
import com.wordnik.swagger.jaxrs.reader.DefaultJaxrsApiReader;
import com.wordnik.swagger.jersey.JerseyApiReader;
import com.wordnik.swagger.reader.ClassReaders;

/**
 * <p>Configures the servlet container for the context uri path
 * @author Jayaram
 */
@Configuration
public class WebAppInitializer extends SpringBootServletInitializer {

    @Value("${tomcat.contextPath:/uim}/${application.id:auth}")
    private String contextPath;

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        super.onStartup(servletContext);
    }

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(WebAppInitializer.class);
    }

    @Bean
    public ServletContainer jersseyServlet() {
        return new ServletContainer();
    }

    @Bean
    public ServletRegistrationBean jersseyServletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(jersseyServlet());
        Map<String, String> params = new HashMap<String, String>();
        params.put("javax.ws.rs.Application", JerssyApplicationInitializer.class.getName());
        registration.setInitParameters(params);
        registration.addUrlMappings("/api/*");
        registration.setLoadOnStartup(1);
        return registration;
    }

    @Bean
    public ServletRegistrationBean swaggerBootStrapBean() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new Bootstrap());
        registration.setLoadOnStartup(2);
        return registration;
    }

    @Bean
    public DispatcherServlet dispatcherServlet() {
        // Create the dispatcher servlet's Spring application context
        AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();
        dispatcherContext.register(DispatcherConfig.class);
        return new DispatcherServlet(dispatcherContext);
    }

    @Bean
    public ServletRegistrationBean dispatcherServletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(dispatcherServlet());
        registration.addUrlMappings("/doc/*");
        registration.setLoadOnStartup(1);
        return registration;
    }

    /**
     * Configuration for the swagger UI
     * @author Jayaram
     *
     */
    public static class Bootstrap extends HttpServlet {
        private static final long serialVersionUID = -488257706121168000L;

        @Override
        public void init(ServletConfig config) throws ServletException {
            super.init(config);
            BeanConfig beanConfig = new BeanConfig();
            beanConfig.setVersion("1.0");
            beanConfig.setBasePath("/uim/auth/api");
            beanConfig.setResourcePackage("com.uimirror.auth.endpoint");
            beanConfig.setTitle("Authentication System- By Uim");
            beanConfig.setDescription("Authentication Manager for application supports oAuth2");
            beanConfig.setContact("support@uimirror.com");
            beanConfig.setLicense("Uimirror Copy right");
            //ClassReaders.setReader(new JerseyApiReader());
            //ClassReaders.setReader(new BasicJaxrsReader());
            beanConfig.setScan(true);
        }
    }

    //  @Bean
    //  public ServletRegistrationBean jerseyJaxrsConfigBean(){
    //      ServletRegistrationBean registration = new ServletRegistrationBean(new JerseyJaxrsConfig());
    //      Map<String,String> params = new HashMap<String,String>();
    //      params.put("api.version", "1.0.0");
    //      params.put("swagger.api.basepath", "http://localhost:8080/uim/account/api");
    //      registration.setInitParameters(params);
    //      registration.setLoadOnStartup(2);
    //      return registration;
    //  }

}