Skip to content

Latest commit

 

History

History
141 lines (121 loc) · 14.3 KB

File metadata and controls

141 lines (121 loc) · 14.3 KB

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

Материалы занятия (скачать все патчи можно через Download папки patch)

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

Apply 3_1_HW2_schema.patch

Apply 3_2_HW2_JAXB.patch

  • убрал второй параметр xmlName (всегда payload.xml)
  • в parseByJaxb сделал закрытие InputStream сразу после обработки
  • сделал методы статическими
  • вместо вложенного стрима для групп юзера сделал пересечение коллекций Collections.disjoint
  • результат JAXB также вывожу в HTML (в ДЗ только в Optional)
  • в j2html вместо setAttribute сделал attr

Apply 3_3_HW2_StAX.patch

  • зарефакторил в StaxStreamProcessor doUntil() и getAttribute()
  • константы вставил в код
  • вместо вложенного цикла для групп юзера сделал пересечение коллекций Collections.disjoint и для маскирования пустых групп Strings.nullToEmpty

Apply 3_4_StAX_refactoring.patch

Apply 3_5_HW2_xslt.patch

В groups.xsl добавил явный namespace. Теперь при создании xPath IDEA делает автодополнения

Занятие 3

Apply 3_6_multimodule.patch

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

  • Сделать структуру проекта согласно схеме. В модулях c packaging=pom кода нет, корневое src перенести в другие модули.
    • Matrix + Benchmark перенести в модуль test.
    • Схемы XML/XSD в модуль upload

Внимание: название модуля export в видео и картинке идеологически неверно. В коде и патчах переименовал в upload.

WAR модули:

  • mail-service - модуль отсылки почты. Транспорт: JAX-WS, JAX-RS, JMX, AKKA
  • upload - модуль загрузки payload.xml. Заргузка и многопоточночная вставка в DB
  • webapp - веб-интерфейс для отсылки почты пользователям из DB. Клиент модуля mail-service

image

  • Учитывая, что web модулей в проекте предполагается много, измените структуру, чтобы не дублировать maven-war-plugin (и другие общие зависимости war модулей).
  • Проверьте, что проект собирается!

Optional

  • Реализовать простую форму заргузки файла payload.xml в модуле upload (через StAX) и отобразить загруженных пользователей (имя/email/flag)
  • Сделать загрузку через StAX+JAXB многопоточно. Сейчас JaxbParser реализован с synchronize, что означает что он потокобезопасен (может работать с несколькими запросами), но последовательно, в одном потоке. Нужен рефакторинг.

Замечания:

  • 1: имя артифакта artifactId как и пакеты называть только в lowercase. Обычно используют "-" как разделитель слов. Имя каталога модуля лучше делать тоже самое: Project Directories Should Match the Artifact ID
  • 2: следите, чтобы пути в шаблонах были не от рута "/". Каждое приложение деплоится в свой Application Context.
  • 3: чтобы не дублировать maven-war-plugin сделать paren-web. Он наследуется от parent, а от него наследуются все war модули.