package pl.edu.icm.saos.importer; import javax.annotation.PostConstruct; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.stereotype.Service; import pl.edu.icm.saos.importer.common.ImportDateTimeFormatter; import pl.edu.icm.saos.importer.commoncourt.CommonCourtImportConfiguration; import pl.edu.icm.saos.importer.notapi.common.DateTimeDeserializer; import pl.edu.icm.saos.importer.notapi.common.ImportFileUtils; import pl.edu.icm.saos.importer.notapi.common.content.ContentSourceFileFinder; import pl.edu.icm.saos.importer.notapi.constitutionaltribunal.ConstitutionalTribunalImportConfiguration; import pl.edu.icm.saos.importer.notapi.nationalappealchamber.NationalAppealChamberImportConfiguration; import pl.edu.icm.saos.importer.notapi.supremecourt.SupremeCourtImportConfiguration; import com.fasterxml.jackson.core.JsonParser.Feature; import com.fasterxml.jackson.databind.MappingJsonFactory; /** * @author Ɓukasz Dumiszewski */ @Configuration @ComponentScan(useDefaultFilters=false, includeFilters={@Filter(type=FilterType.ANNOTATION, value=Service.class)}) @Import({CommonCourtImportConfiguration.class, SupremeCourtImportConfiguration.class, ConstitutionalTribunalImportConfiguration.class, NationalAppealChamberImportConfiguration.class}) public class ImportConfiguration { @Bean public MappingJsonFactory jsonFactory() { MappingJsonFactory factory = new MappingJsonFactory(); factory.enable(Feature.ALLOW_COMMENTS); return factory; } @Bean public ImportFileUtils importFileUtils() { ImportFileUtils scjImportFileUtils = new ImportFileUtils(); scjImportFileUtils.setEligibleFileExtensions(new String[]{"json", "json.gz"}); return scjImportFileUtils; } @Bean public ContentSourceFileFinder contentSourceFileFinder() { ContentSourceFileFinder contentSourceFileFinder = new ContentSourceFileFinder(); contentSourceFileFinder.setEligibleFileExtensions(new String[] { "zip" }); return contentSourceFileFinder; } @Bean public ImportDateTimeFormatter importDateTimeFormatter() { ImportDateTimeFormatter importDateTimeFormatter = new ImportDateTimeFormatter(); importDateTimeFormatter.setImportDatePattern("yyyy-MM-dd HH:mm"); return importDateTimeFormatter; } //------------------------ POST_CONSTRUCT -------------------------- @PostConstruct public void postConstruct() { DateTimeDeserializer.setImportDateTimeFormatter(importDateTimeFormatter()); } }