Skip to content

Latest commit

 

History

History
107 lines (88 loc) · 12.6 KB

File metadata and controls

107 lines (88 loc) · 12.6 KB

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

  • Не стоит стремится прочитать все ссылки урока, их можно впоследствии использовать как справочник. Гораздо важнее сделать Домашнее Задание
  • Обязательно посмотри правила работы с патчами на проекте (совпадают с проектом Topjava)
  • Делать Apply Patch лучше по одному, непосредственно перед видео на эту тему, а при просмотре видео сразу отслеживать все изменения кода проекта по изменению в патче
  • Код проекта обновляется и не всегда совпадает с видео (можно увидеть как развивался проект). Изменения в проекте указываю после соответствующего патча.
  • 42 IntelliJ IDEA Tips and Tricks

В коде проекта используется JDK 8. Если у вас выше, необходимо будет включить в проект дополнительные зависимости, исключенные в JDK 9

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

image

2_1_HW1_singleThreadMultiplyOpt.patch

2_2_HW1_concurrentMultiply.patch

2_3_HW1_concurrentMultiply2.patch

Callable / executor.invokeAll в concurrentMultiply2 поменял на Runnable / CountDownLatch

2_4_JMH_Benchmark.patch

2_5_JMH_main_jar.patch

Сделал forks=10 для большой точности измерений и убрал лишние измерения

2_6_xml_scheme.patch

Работа с XML в Java

2_7_JAXB.patch

video 5. StAX

2_8_StAX.patch

video 6. XPath

Поправка к видео на 2:29 - лет 10-15 назад был популярен подход рисовать квадратиками в специальном приложении логику связываения через сообщения разных сервисов. Сервисы подключались к ESB по разным протоколам. Один из них был JBI. Все это было достаточно красиво для продаж, но очень неуклюже для разработки. Cейчас уже редко где можно встретить, хотя Spring Integration, Apache Camel и пр. для определенных приложений-процессов используют.

2_9_XPath.patch

В IDEA в контекстном меню на элемент XML есть пункт (2-й снизу) Evaluate XPath...
На имена города он выдает /Payload/Cities/City/text()
Чтобы это выражение работало в нашем XPathProcessorTest нужно отключить NamespaceAware:

public class XPathProcessor
...
25       DOCUMENT_FACTORY.setNamespaceAware(false);

video 7. XSLT

2_10_Xslt.patch

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

  • 1: Изменить XML схему:
    • 1.1 добавить проекты. Имеют название (например topjava, masterjava) и описание
    • 1.2 добавить группы. Они имеют название и тип (REGISTERING/CURRENT/FINISHED) и принадлежат проекту. Например проект topjava, группы topjava01,topjava02, ..
    • 1.3 сделать User.email аттрибутом.
    • 1.4 реализовать принадлежность участников разным группам (Admin состоит в группах topjava07, topjava08, masterjava01)
  • 2: Дополнить xml тестовыми данными.
  • 3: Реализовать класс MainXml, которые принимает параметром имя проекта в тестовом xml и выводит отсортированный список его участников (использовать JAXB).

Optional

  • 4: Сделать реализацию MainXml через StAX (выводить имя/email)
  • 5: Из списка участников сделать html таблицу (имя/email). Реализация- любая.
  • 6: Вывести через XSLT преобразование html таблицу с группами заданного проекта

Замечания:

  • 1: Не используйте IDREF, где можно сделать обычную вложенность, принятую в структурах XML
  • 2: Попробуйте сделать минимальное количестово XML текста на одного юзера (пользователей много, экономим)
  • 3: Используйте StaxStreamProcessor! Добавляйте туда и используйте утильные методы.
  • 4: Постарайтесь оптимизировать реализацию определения "находится ли пользователь в проекте". Не делать сложность (N пользователей * M групп)!