Java tutorial
/******************************************************************************* * 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; // } }