package br.com.gigalink.conf;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.swing.text.DateFormatter;
import org.springframework.cache.CacheManager;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.format.datetime.DateFormatterRegistrar;
import org.springframework.format.support.DefaultFormattingConversionService;
import org.springframework.format.support.FormattingConversionService;
import org.springframework.web.accept.ContentNegotiationManager;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import org.springframework.web.servlet.ViewResolver;
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 br.com.gigalink.controllers.HomeController;
import br.com.gigalink.daos.FornecedorDao;
import br.com.gigalink.daos.ItemDao;
import br.com.gigalink.daos.PedidoDao;
import br.com.gigalink.daos.ProdutoDao;
import br.com.gigalink.models.CarrinhoCompra;
import br.com.gigalink.models.Fornecedor;
import br.com.gigalink.models.Pedido;
import br.com.gigalink.models.Produto;
@EnableWebMvc
@ComponentScan(basePackageClasses={HomeController.class, FornecedorDao.class, ProdutoDao.class, PedidoDao.class, ItemDao.class, Pedido.class, CarrinhoCompra.class, Produto.class})
//classe criada para o spring encontrar os controllers e daos da vida
public class AppWebConfiguration extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver internalResourceViewResolve() {
InternalResourceViewResolver resolve = new InternalResourceViewResolver();
resolve.setPrefix("/WEB-INF/views/");
resolve.setSuffix(".jsp");
resolve.setExposedContextBeanNames("carrinhoCompra");
return resolve;
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource =
new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(1);
return messageSource;
}
@Bean
public MultipartResolver multipartResolver() {
return new StandardServletMultipartResolver();
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}