Skip to content

Latest commit

 

History

History
127 lines (102 loc) · 11.2 KB

File metadata and controls

127 lines (102 loc) · 11.2 KB

Онлайн проекта Masterjava.

hw Разбор домашнего задания HW5

Apply 6_1_HW5_model_sql.patch

  • Перенес sql файлы в корневую папку sql
  • Изменения базы оставил только в файле миграции databaseChangeLog.sql
  • Сделал первичный ключ PK city.ref. Это справочник, и важно, чтобы внешние ссылки FK на него можно было вставить без заморочек. У нас на одном проекте были проблемы, когда на разных окружениях справочные таблицы имели разные id. Данные нельзя было просто вставить скриптами миграции sql без подселектов или программного кода и была задача привести их всех к одинаковым id. С ref как PK все упростится. Хотя у кого-то может быть другой опыт:)
  • Также см. отдельную тему Миграция DB в уроке.
  • Скрип миграции lb_apply.bat (на sh переведите сами, если unix) можно запускать много раз. По истории смотрится, чтобы каждый ChangeSet накатился только 1 раз. ВНИМАНИЕ: скрипт накатывается на базу, сгенерированную initDB.sql
  • Liquibase

Apply 6_2_HW5_dao_test.patch

в CityDaoTest и ProjectDaoTest также выделил init()

  • Классы Result/ChunkResult/GroupResult упростил до List<FailedEmails>
  • Переименовал
    • ProcessPayload -> PayloadProcessor
    • CityExport -> CityProcessor
    • UserExport -> UserProcessor

Apply 6_3_HW5_add_PayloadProcessor.patch

Apply 6_4_HW5_NEW_add_CityProcessor.patch


Apply 6_5_web_services.patch

Java реализации.

Имплементируем Mail Service


Домашнее задание

  • Реализовать MailSender с конфигурированием параметров в mail.conf
   mail.host: smtp.yandex.ru
   mail.port: 465
   mail.username: user@yandex.ru
   mail.password: password
   mail.useSSL: true
   mail.useTLS: false
   mail.debug: true
   mail.fromName: Name

Если конфигурируете почту Yandex, перейдите в настройки и поднимите галочки:

image

C включенным Avast были замечены проблемы с ValidatorException: PKIX path building failed. Avast и Avast Mail Shield для отправки требуется отключить

В случае DEBUG SMTP: AUTH LOGIN failed, Error: authentication failed: Invalid user or password! проверьте Шаг 2. Создайте пароль приложения - при галочке "Включить пароли приложений" нужно указывать пароль к приложению.

При попытке подключиться к хосту smtp.yandex.ru(или другому) возможен SunCertPathBuilderException: unable to find valid certification path to requested target. В таком случае нужно или выполнить две команды в терминале или сделать все как в статье. Во втором случае перед запуском пропишите в аргументах приложения имя хоста(smtp.yandex.ru:465 если через яндекс)

  • Сохранят результат отправки писем в DB (в MailSender).
  • DAO и модель для сохранения сделать в модуле mail-service
  • Протестировать отправку почты через SoapUI и/или MailServiceClient

Optional

  • добавить в модуле upload импорт и сохранение в базу групп и проектов (упрощение: только добавление без удаления/модификации)
  • добавить при импорте пользователей связи на группы
    • если пользователь уже есть в базе, поведение остается прежним: сразу ошибка импорта
    • если пользователь новый, добавляется он и его группы
    • если какая-либо группа пользователя отсутствует в базе - ошибка импорта

Замечания:

  • пользователей много, а их групп еще больше. Если в чанке 2000 юзеров, не делайте 2001 запрос к базе при вставке 1го чанка.
  • не считывате конфигурацию при каждой отсылке email
  • попробуйте не дублировать инициализацию базы в mail-service