From d479cbb9a2d2b51498085d34cd1720a862719be8 Mon Sep 17 00:00:00 2001 From: ipodskochin Date: Sun, 28 Feb 2021 19:34:20 +0300 Subject: [PATCH 1/2] HW07(base) mailService.wsdl mv to common resources, wsdl fixed --- .../src/main}/resources/wsdl/mailService.wsdl | 56 ++++++++++++---- .../masterjava/service/mail/MailWSClient.java | 5 ++ .../service/mail/MailWSClientMain.java | 8 ++- .../main/webapp/WEB-INF/wsdl/mailService.wsdl | 65 ------------------- 4 files changed, 54 insertions(+), 80 deletions(-) rename {services/mail-api/src/test => common/src/main}/resources/wsdl/mailService.wsdl (51%) delete mode 100644 services/mail-service/src/main/webapp/WEB-INF/wsdl/mailService.wsdl diff --git a/services/mail-api/src/test/resources/wsdl/mailService.wsdl b/common/src/main/resources/wsdl/mailService.wsdl similarity index 51% rename from services/mail-api/src/test/resources/wsdl/mailService.wsdl rename to common/src/main/resources/wsdl/mailService.wsdl index 09511ad..d8875d6 100644 --- a/services/mail-api/src/test/resources/wsdl/mailService.wsdl +++ b/common/src/main/resources/wsdl/mailService.wsdl @@ -8,10 +8,12 @@ name="MailServiceImplService"> - - + + + + - + @@ -20,6 +22,14 @@ + + + + + + + + @@ -28,26 +38,48 @@ - + + + + - - + + + + + - - + + + + + - - - + + + + + + + - + + + + + + + + + + diff --git a/services/mail-api/src/main/java/ru/javaops/masterjava/service/mail/MailWSClient.java b/services/mail-api/src/main/java/ru/javaops/masterjava/service/mail/MailWSClient.java index dc65d09..f734571 100644 --- a/services/mail-api/src/main/java/ru/javaops/masterjava/service/mail/MailWSClient.java +++ b/services/mail-api/src/main/java/ru/javaops/masterjava/service/mail/MailWSClient.java @@ -24,4 +24,9 @@ public static void sendToGroup(final Set to, final Set cc, log.info("Send mail to '" + to + "' cc '" + cc + "' subject '" + subject + (log.isDebugEnabled() ? "\nbody=" + body : "")); WS_CLIENT.getPort().sendToGroup(to, cc, subject, body); } + + public static void sendBulk(final Set to, final String subject, final String body) { + log.info("Send mail to '" + to + "' subject '" + subject + (log.isDebugEnabled() ? "\nbody=" + body : "")); + WS_CLIENT.getPort().sendBulk(to, subject, body); + } } diff --git a/services/mail-api/src/test/java/ru/javaops/masterjava/service/mail/MailWSClientMain.java b/services/mail-api/src/test/java/ru/javaops/masterjava/service/mail/MailWSClientMain.java index a315ce3..b1454f7 100644 --- a/services/mail-api/src/test/java/ru/javaops/masterjava/service/mail/MailWSClientMain.java +++ b/services/mail-api/src/test/java/ru/javaops/masterjava/service/mail/MailWSClientMain.java @@ -1,12 +1,14 @@ package ru.javaops.masterjava.service.mail; -import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; public class MailWSClientMain { public static void main(String[] args) { + MailWSClient.sendBulk( + ImmutableSet.of(new Addressee("To ")), "Subject", "BodyBulk"); + MailWSClient.sendToGroup( - ImmutableSet.of(new Addressee("To ")), - ImmutableSet.of(new Addressee("Copy ")), "Subject", "Body"); + ImmutableSet.of(new Addressee("To ")), + ImmutableSet.of(new Addressee("Copy ")), "Subject", "BodyGroup"); } } \ No newline at end of file diff --git a/services/mail-service/src/main/webapp/WEB-INF/wsdl/mailService.wsdl b/services/mail-service/src/main/webapp/WEB-INF/wsdl/mailService.wsdl deleted file mode 100644 index 09511ad..0000000 --- a/services/mail-service/src/main/webapp/WEB-INF/wsdl/mailService.wsdl +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 792f6795d6c961de2728cdef2a1c6b199fd33b81 Mon Sep 17 00:00:00 2001 From: ipodskochin Date: Sun, 28 Feb 2021 22:08:31 +0300 Subject: [PATCH 2/2] HW07(optional) web interface to send email to multiple users --- config/hosts.conf | 3 ++ web/webapp/pom.xml | 5 ++ .../masterjava/webapp/MailServlet.java | 47 +++++++++++++++++++ .../main/webapp/WEB-INF/templates/mail.html | 31 ++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 config/hosts.conf create mode 100644 web/webapp/src/main/java/ru/javaops/masterjava/webapp/MailServlet.java create mode 100644 web/webapp/src/main/webapp/WEB-INF/templates/mail.html diff --git a/config/hosts.conf b/config/hosts.conf new file mode 100644 index 0000000..c2fdeb3 --- /dev/null +++ b/config/hosts.conf @@ -0,0 +1,3 @@ +hosts { + mail = "http://localhost:8080" +} \ No newline at end of file diff --git a/web/webapp/pom.xml b/web/webapp/pom.xml index de3a56f..e892e75 100644 --- a/web/webapp/pom.xml +++ b/web/webapp/pom.xml @@ -26,5 +26,10 @@ persist ${project.version} + + ${project.groupId} + mail-api + ${project.version} + \ No newline at end of file diff --git a/web/webapp/src/main/java/ru/javaops/masterjava/webapp/MailServlet.java b/web/webapp/src/main/java/ru/javaops/masterjava/webapp/MailServlet.java new file mode 100644 index 0000000..0feac93 --- /dev/null +++ b/web/webapp/src/main/java/ru/javaops/masterjava/webapp/MailServlet.java @@ -0,0 +1,47 @@ +package ru.javaops.masterjava.webapp; + +import com.google.common.collect.ImmutableMap; +import lombok.extern.slf4j.Slf4j; +import org.thymeleaf.context.WebContext; +import ru.javaops.masterjava.persist.DBIProvider; +import ru.javaops.masterjava.persist.dao.UserDao; +import ru.javaops.masterjava.service.mail.Addressee; +import ru.javaops.masterjava.service.mail.MailWSClient; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Arrays; +import java.util.Set; +import java.util.stream.Collectors; + +import static ru.javaops.masterjava.common.web.ThymeleafListener.engine; + +@Slf4j +@WebServlet("/mail") +public class MailServlet extends HttpServlet { + private UserDao userDao = DBIProvider.getDao(UserDao.class); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + returnToMain(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String subject = req.getParameter("subject"); + String body = req.getParameter("email_body"); + Set emailTo= Arrays.stream(req.getParameterValues("emailTo")).map(Addressee::new).collect(Collectors.toSet()); + MailWSClient.sendBulk(emailTo, subject, body); + returnToMain(req, resp); + } + + private void returnToMain(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + final WebContext webContext = new WebContext(req, resp, req.getServletContext(), req.getLocale(), + ImmutableMap.of("users", userDao.getWithLimit(20))); + engine.process("mail", webContext, resp.getWriter()); + } +} diff --git a/web/webapp/src/main/webapp/WEB-INF/templates/mail.html b/web/webapp/src/main/webapp/WEB-INF/templates/mail.html new file mode 100644 index 0000000..e57b599 --- /dev/null +++ b/web/webapp/src/main/webapp/WEB-INF/templates/mail.html @@ -0,0 +1,31 @@ + + + + Mail sending + + +
+

Select users

+ +

+ + +

+

+

+ + +

+

+

+ +

+
+ + \ No newline at end of file