Почему Geronimo Javamail не извлекает тему сообщения и конфликтует с реализацией JVM по умолчанию? - PullRequest
0 голосов
/ 29 марта 2019

В нашей непрерывной интеграции произошел сбой теста, поскольку новое электронное письмо, отправленное во время теста, не будет загружено.Разобравшись с проблемой и включив отладку javamail, мы обнаружили, что локально

DEBUG: getProvider (), возвращающий javax.mail.Provider [STORE, pop3s, com.sun.mail.pop3.POP3SSLStore, Oracle]

на CI

ОТЛАДКА: getProvider () протокол возврата поставщика = pop3s;type=javax.mail.Provider$Type@728749b3;класс = org.apache.geronimo.javamail.store.pop3.POP3SSLStore;vendor = Apache Software Foundation; версия = 1.0

Это то, что мы исследовали:

  • Даже если вы используете одну и ту же версию SBT и другой минор Java, вы не можете полагаться на загрузку классов, чтобы вести себя одинаково
  • Javamail позволяет вам принудительно устанавливать свойства для каждого класса хранилища, устанавливая mail.pop3s.class, можно переопределить поведение и принудительно использовать Pop3SSLStore.
  • Даже с этой настройкой тема сообщения не выбирается в CI, когда мы делаем message.getSubject, который всегда возвращает ноль.Включение отладки javamail показывает, что ни одна команда TOP не выполняется на CI, хотя она выполняется локально.Таким образом, сообщения не извлекаются с сервера
  • Исключение явно всех зависимостей из "org.apache.geronimo.javamail" решает проблему

Почему следует использовать Geronimo и почемуэто портит реализацию jvm по умолчанию, которая так хорошо работает на нашей машине?

...