package fr.openwide.core.basicapp.core.config.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.transaction.annotation.EnableTransactionManagement; import fr.openwide.core.basicapp.core.BasicApplicationCorePackage; import fr.openwide.core.spring.config.spring.AbstractApplicationConfig; import fr.openwide.core.spring.config.spring.annotation.ApplicationDescription; import fr.openwide.core.spring.config.spring.annotation.ConfigurationLocations; @Configuration @ApplicationDescription(name = BasicApplicationCoreCommonConfig.APPLICATION_NAME) @ConfigurationLocations @Import({ BasicApplicationCoreCommonJpaConfig.class, // configuration de la persistence BasicApplicationCoreSecurityConfig.class, // configuration de la sécurité BasicApplicationCoreTaskManagementConfig.class, // configuration de la gestion des tâches BasicApplicationCoreNotificationConfig.class, // configuration des notifications BasicApplicationCoreSchedulingConfig.class, // configuration des tâches planifiées BasicApplicationCoreApplicationPropertyConfig.class // configuration des propriétés de l'application }) @ComponentScan( basePackageClasses = { BasicApplicationCorePackage.class }, // https://jira.springsource.org/browse/SPR-8808 // on veut charger de manière explicite le contexte ; de ce fait, // on ignore l'annotation @Configuration sur le scan de package. excludeFilters = @Filter(Configuration.class) ) // fonctionnement de l'annotation @Transactional @EnableTransactionManagement(order = BasicApplicationAdviceOrder.TRANSACTION) public class BasicApplicationCoreCommonConfig extends AbstractApplicationConfig { public static final String APPLICATION_NAME = "basic-application"; public static final String PROFILE_TEST = "test"; }