content: package com.amazonaws.labs.sampleapp;
  
  
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.ComponentScan;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
  import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
  import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  import org.springframework.web.servlet.view.InternalResourceViewResolver;
  
  import com.amazonaws.regions.Region;
  import com.amazonaws.regions.Regions;
  import com.amazonaws.services.autoscaling.AmazonAutoScaling;
  import com.amazonaws.services.autoscaling.AmazonAutoScalingClient;
  import com.amazonaws.services.codedeploy.AmazonCodeDeploy;
  import com.amazonaws.services.codedeploy.AmazonCodeDeployClient;
  import com.amazonaws.services.ec2.AmazonEC2;
  import com.amazonaws.services.ec2.AmazonEC2Client;
  
  import java.io.IOException;
  
  @EnableWebMvc
  @ComponentScan(basePackages = {"com.amazonaws.labs.sampleapp"})
  @Configuration
  public class MvcConfiguration extends WebMvcConfigurerAdapter {
      private static Region region = Regions.getCurrentRegion();
  
      @Override
      public void addResourceHandlers(final ResourceHandlerRegistry registry) {
          registry.addResourceHandler("/css/**").addResourceLocations("classpath:/css/");
          registry.addResourceHandler("/images/**").addResourceLocations("classpath:/images/");
          registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
      }
  
      @Override
      public void configureDefaultServletHandling(final DefaultServletHandlerConfigurer configurer) {
          configurer.enable();
      }
  
      @Bean
      public InternalResourceViewResolver viewResolver() {
          InternalResourceViewResolver resolver = new InternalResourceViewResolver();
          resolver.setPrefix("/WEB-INF/pages");
          resolver.setSuffix(".jsp");
          return resolver;
      }
  
      @Bean
      public AmazonCodeDeploy codeDeploy() {
          final AmazonCodeDeploy client = new AmazonCodeDeployClient();
          client.setRegion(region);
          return client;
      }
  
      @Bean
      public AmazonEC2 ec2() {
          final AmazonEC2 client = new AmazonEC2Client();
          client.setRegion(region);
          return client;
      }
      
      @Bean
      public AmazonAutoScaling autoScaling() {
          AmazonAutoScaling client = new AmazonAutoScalingClient();
          client.setRegion(region);
          return client;
      }
  
      @Bean
      public PropertySourcesPlaceholderConfigurer properties() {
          final PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
          try {
              configurer.setLocations(new PathMatchingResourcePatternResolver().getResources("file:/var/codedeploy/tomcat-sample/env.properties"));
          } catch (IOException e) {
              throw new RuntimeException("Failed to load resources.", e);
          }
          return configurer;
      }
  }
  