Subversion Repositories SmartDukaan

Rev

Rev 21282 | Rev 21342 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.config;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;
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.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@ComponentScan("com.spice.profitmandi.*")
public class AppConfig {

        private static final String PATH_PREFIX="/WEB-INF/views/";
        private static final String PATH_SUFFIX=".jsp";
        private static final String MESSAGE_PATH_SOURCE_NAME="classpath:message";
        private static final Logger LOGGER=LoggerFactory.getLogger(AppConfig.class);

        @Bean(name = "viewResolver")
        public InternalResourceViewResolver getViewResolver() {
                LOGGER.debug("creating view resolver bean with prefix : "+PATH_PREFIX+" and suffix : "+PATH_SUFFIX);
                InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
                viewResolver.setPrefix(PATH_PREFIX);
                viewResolver.setSuffix(PATH_SUFFIX);
                return viewResolver;
        }

        @Bean(name="messageSource")
        public ReloadableResourceBundleMessageSource getReloadableResourceBundleMessageSource() {
                LOGGER.debug("creating messageSource bean with message path source name : "+MESSAGE_PATH_SOURCE_NAME);
                ReloadableResourceBundleMessageSource messageSource=new ReloadableResourceBundleMessageSource();
                messageSource.setBasename(MESSAGE_PATH_SOURCE_NAME);
                return messageSource;
        }

        @Bean(name="multipartResolver")
        public CommonsMultipartResolver getCommonsMultipartResolver() {
                LOGGER.info("creating common multipart resolver bean");
                return new CommonsMultipartResolver();
        }

        @Bean
        public static PropertySourcesPlaceholderConfigurer propertyConfigurer() {
                Resource resource;
                String activeProfile;

                PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer =  new PropertySourcesPlaceholderConfigurer();

                activeProfile = System.getProperty("spring.profiles.active");

                if ("prod".equals(activeProfile)) {
                        resource = new ClassPathResource("/META-INF/prod.properties");
                } else if ("staging".equals(activeProfile)) {
                        resource = new ClassPathResource("/META-INF/test.properties");
                } else {
                        resource = new ClassPathResource("/META-INF/dev.properties");
                }

                propertySourcesPlaceholderConfigurer.setLocation(resource);

                return propertySourcesPlaceholderConfigurer;
        }
}