Package com.findwise.hydra.admin.rest

Source Code of com.findwise.hydra.admin.rest.AppConfig

package com.findwise.hydra.admin.rest;

import com.findwise.hydra.admin.rest.jsonp.JsonpCallbackFilter;
import java.io.File;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

import com.findwise.hydra.admin.ConfigurationService;
import com.findwise.hydra.admin.documents.DocumentsService;
import com.findwise.hydra.admin.stages.StagesService;
import com.findwise.hydra.mongodb.MongoConnector;
import com.findwise.hydra.mongodb.MongoType;

@Configuration
@ComponentScan(basePackages = "com.findwise.hydra.admin.rest")
public class AppConfig {

  private static final String PROPERTIES_FILE = "admin-service.properties";
  private static final String CONFIG_DIR_PROPERTY = "hydra.admin.config.dir";

  @Autowired
  private DatabaseConfig databaseConfig;

  @Bean
  @Autowired
  public MongoConnector connector(DatabaseConfig config) {
    return new MongoConnector(config);
  }

  @Bean
  public DatabaseConfig databaseConfig() {
    return new DatabaseConfig();
  }

  @Bean(name = "multipartResolver")
  public CommonsMultipartResolver multipartResolver() {
    CommonsMultipartResolver cmr = new CommonsMultipartResolver();

    cmr.setMaxUploadSize(1024 * 1024 * 1024); // 1 Gigabyte...

    return cmr;
  }

        @Bean(name = "jsonpCallbackFilter")
        public static JsonpCallbackFilter jsonpCallback(){
            return new JsonpCallbackFilter();
        }

  @Bean
  public PropertyPlaceholderConfigurer properties() {
    String configurationDirectory = System.getProperty(CONFIG_DIR_PROPERTY);
    File propertiesFile = new File(configurationDirectory, PROPERTIES_FILE);
    final Resource[] resources = new Resource[] {
        new ClassPathResource(PROPERTIES_FILE),
        new FileSystemResource(propertiesFile) };
    PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
    ppc.setIgnoreUnresolvablePlaceholders(true);
    ppc.setIgnoreResourceNotFound(true);
    ppc.setLocations(resources);
    return ppc;
  }

  @Bean
  public ConfigurationService<MongoType> configurationService(
      MongoConnector connector) {
    return new ConfigurationService<MongoType>(connector);
  }

  @Bean
  public DocumentsService<MongoType> documentsService(MongoConnector connector) {
    return new DocumentsService<MongoType>(connector);

  }

  @Bean
  public StagesService<MongoType> stagesService(MongoConnector connector) {
    return new StagesService<MongoType>(connector);
  }
}
TOP

Related Classes of com.findwise.hydra.admin.rest.AppConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.