Loading pom.xml +24 −2 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ <tomcat.version>8.5.28</tomcat.version> <!-- REDMIC --> <redmic.broker-lib.version>0.6.0</redmic.broker-lib.version> <!-- OTHERS --> Loading @@ -39,13 +40,34 @@ <dependencies> <!-- Spring, Depende del microservicio. Se podría cambiar por REST, Socket... --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <!-- Redmic --> <dependency> <groupId>es.redmic.lib</groupId> <artifactId>broker-lib</artifactId> <version>${redmic.broker-lib.version}</version> </dependency> <!-- Logs --> <dependency> <groupId>org.apache.logging.log4j</groupId> Loading src/main/java/es/redmic/notificationmanager/common/controller/NotificationController.java 0 → 100644 +30 −0 Original line number Diff line number Diff line package es.redmic.notificationmanager.common.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.kafka.annotation.KafkaHandler; import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Controller; import es.redmic.brokerlib.alert.Message; import es.redmic.notificationmanager.mail.service.EmailService; @Controller @KafkaListener(topics = "${broker.topic.alert}") public class NotificationController { EmailService service; @Autowired public NotificationController(EmailService service) { this.service = service; } @KafkaHandler public void listen(Message event) { //TODO: si el type no es email, llamar al servicio adecuado. if (!event.getTo().contains("test")) { service.sendSimpleMessage(event.getTo(), event.getSubject(), event.getMessage()); } } } src/main/java/es/redmic/notificationmanager/mail/service/EmailService.java 0 → 100644 +62 −0 Original line number Diff line number Diff line package es.redmic.notificationmanager.mail.service; import java.io.File; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.MailException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; public class EmailService { @Autowired public JavaMailSender emailSender; public void sendSimpleMessage(String to, String subject, String text) { try { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); emailSender.send(message); } catch (MailException exception) { exception.printStackTrace(); } } public void sendSimpleMessageUsingTemplate(String to, String subject, SimpleMailMessage template, String ...templateArgs) { String text = String.format(template.getText(), templateArgs); sendSimpleMessage(to, subject, text); } public void sendMessageWithAttachment(String to, String subject, String text, String pathToAttachment) { try { MimeMessage message = emailSender.createMimeMessage(); // pass 'true' to the constructor to create a multipart message MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(to); helper.setSubject(subject); helper.setText(text); FileSystemResource file = new FileSystemResource(new File(pathToAttachment)); helper.addAttachment("Invoice", file); emailSender.send(message); } catch (MessagingException e) { e.printStackTrace(); } } } src/main/resources/application-dev.properties +3 −0 Original line number Diff line number Diff line spring.kafka.bootstrap-servers=localhost:19092 spring.kafka.properties.schema.registry.url=http://localhost:18081 No newline at end of file src/main/resources/application-pre.properties +3 −0 Original line number Diff line number Diff line spring.kafka.bootstrap-servers=kf-1:9092,kf-2:9092,kf-3:9092 spring.kafka.properties.schema.registry.url=http://schema-registry:8081 No newline at end of file Loading
pom.xml +24 −2 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ <tomcat.version>8.5.28</tomcat.version> <!-- REDMIC --> <redmic.broker-lib.version>0.6.0</redmic.broker-lib.version> <!-- OTHERS --> Loading @@ -39,13 +40,34 @@ <dependencies> <!-- Spring, Depende del microservicio. Se podría cambiar por REST, Socket... --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <!-- Redmic --> <dependency> <groupId>es.redmic.lib</groupId> <artifactId>broker-lib</artifactId> <version>${redmic.broker-lib.version}</version> </dependency> <!-- Logs --> <dependency> <groupId>org.apache.logging.log4j</groupId> Loading
src/main/java/es/redmic/notificationmanager/common/controller/NotificationController.java 0 → 100644 +30 −0 Original line number Diff line number Diff line package es.redmic.notificationmanager.common.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.kafka.annotation.KafkaHandler; import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Controller; import es.redmic.brokerlib.alert.Message; import es.redmic.notificationmanager.mail.service.EmailService; @Controller @KafkaListener(topics = "${broker.topic.alert}") public class NotificationController { EmailService service; @Autowired public NotificationController(EmailService service) { this.service = service; } @KafkaHandler public void listen(Message event) { //TODO: si el type no es email, llamar al servicio adecuado. if (!event.getTo().contains("test")) { service.sendSimpleMessage(event.getTo(), event.getSubject(), event.getMessage()); } } }
src/main/java/es/redmic/notificationmanager/mail/service/EmailService.java 0 → 100644 +62 −0 Original line number Diff line number Diff line package es.redmic.notificationmanager.mail.service; import java.io.File; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.MailException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; public class EmailService { @Autowired public JavaMailSender emailSender; public void sendSimpleMessage(String to, String subject, String text) { try { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); emailSender.send(message); } catch (MailException exception) { exception.printStackTrace(); } } public void sendSimpleMessageUsingTemplate(String to, String subject, SimpleMailMessage template, String ...templateArgs) { String text = String.format(template.getText(), templateArgs); sendSimpleMessage(to, subject, text); } public void sendMessageWithAttachment(String to, String subject, String text, String pathToAttachment) { try { MimeMessage message = emailSender.createMimeMessage(); // pass 'true' to the constructor to create a multipart message MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(to); helper.setSubject(subject); helper.setText(text); FileSystemResource file = new FileSystemResource(new File(pathToAttachment)); helper.addAttachment("Invoice", file); emailSender.send(message); } catch (MessagingException e) { e.printStackTrace(); } } }
src/main/resources/application-dev.properties +3 −0 Original line number Diff line number Diff line spring.kafka.bootstrap-servers=localhost:19092 spring.kafka.properties.schema.registry.url=http://localhost:18081 No newline at end of file
src/main/resources/application-pre.properties +3 −0 Original line number Diff line number Diff line spring.kafka.bootstrap-servers=kf-1:9092,kf-2:9092,kf-3:9092 spring.kafka.properties.schema.registry.url=http://schema-registry:8081 No newline at end of file