| 1 | package fr.sii.ogham.spring.email; | |
| 2 | ||
| 3 | import fr.sii.ogham.email.sender.impl.JavaMailSender; | |
| 4 | import fr.sii.ogham.spring.email.condition.JakartaActivationDataHandlersAvailable; | |
| 5 | import fr.sii.ogham.spring.email.condition.JakartaMailServiceProvidersAvailable; | |
| 6 | import jakarta.activation.DataHandler; | |
| 7 | import jakarta.activation.MimeType; | |
| 8 | import jakarta.mail.Session; | |
| 9 | import jakarta.mail.internet.MimeMessage; | |
| 10 | import org.springframework.beans.factory.annotation.Autowired; | |
| 11 | import org.springframework.boot.autoconfigure.AutoConfigureAfter; | |
| 12 | import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; | |
| 13 | import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | |
| 14 | import org.springframework.boot.autoconfigure.mail.MailProperties; | |
| 15 | import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration; | |
| 16 | import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 17 | import org.springframework.context.annotation.Bean; | |
| 18 | import org.springframework.context.annotation.Conditional; | |
| 19 | import org.springframework.context.annotation.Configuration; | |
| 20 | ||
| 21 | @Configuration | |
| 22 | @ConditionalOnClass({ | |
| 23 | // need mail api | |
| 24 | MimeMessage.class, | |
| 25 | Session.class, | |
| 26 | // need activation api | |
| 27 | MimeType.class, | |
| 28 | DataHandler.class, | |
| 29 | // need ogham sender | |
| 30 | JavaMailSender.class, | |
| 31 | }) | |
| 32 | // also need implementation but relies on ServiceLoader | |
| 33 | // also check that it is consistent and that mail could be sent | |
| 34 | @Conditional({ | |
| 35 | JakartaMailServiceProvidersAvailable.class, | |
| 36 | JakartaActivationDataHandlersAvailable.class | |
| 37 | }) | |
| 38 | @EnableConfigurationProperties(OghamJavaMailProperties.class) | |
| 39 | @AutoConfigureAfter(MailSenderAutoConfiguration.class) | |
| 40 | public class OghamJavaMailConfiguration { | |
| 41 | ||
| 42 | @Bean | |
| 43 | @ConditionalOnMissingBean(SpringMailConfigurer.class) | |
| 44 | public SpringMailConfigurer springMailConfigurer( | |
| 45 | @Autowired(required=false) OghamJavaMailProperties properties, | |
| 46 | @Autowired(required=false) MailProperties springProperties) { | |
| 47 |
1
1. springMailConfigurer : replaced return value with null for fr/sii/ogham/spring/email/OghamJavaMailConfiguration::springMailConfigurer → RUN_ERROR |
return new SpringMailConfigurer(properties, springProperties); |
| 48 | } | |
| 49 | } | |
Mutations | ||
| 47 |
1.1 |