Jakarta Activation 2.1.3, Jakarta Mail 2.1.3, and Eclipse Angus

279 views
Skip to first unread message

Basil Crow

unread,
Mar 6, 2024, 5:49:03 PM3/6/24
to jenkin...@googlegroups.com
A year after I reported
https://github.com/jakartaee/mail-api/issues/665 upstream, a fix has
finally been released in Jakarta Mail 2.1.3, allowing me to finally
migrate the Jenkins ecosystem to Jakarta Activation 2.1.3, Jakarta
Mail 2.1.3, and Eclipse Angus. This in turn finally eliminates the
namespace conflict with the old javax plugins, resolving
JENKINS-70627. The change has been deployed to production users for a
few days with no reported issues. Thanks to Olivier Lamy for making
the first commit in this direction over a year ago.

There is some low-priority cleanup work remaining, which I do not have
the energy to do right now. JENKINS-72822 describes how to remove the
last remaining workaround in this subsystem, something that is
possible now that we are on Jakarta Activation 2.1.3 if the Jakarta
Activation API plugin and Jakarta Mail API plugins were first merged
into a single plugin. Upstream has assured me the workaround is part
of a stable API and should continue to work, so I see no urgent need
to work on this in the short to medium term. But if anyone is
interested, once the plugins are combined into one, removing the
workaround should be as simple as deleting all Java files from Jakarta
Mail API plugin.

The other bit of cleanup is migrating Mock JavaMail usages to the new
APIs. This is low priority since it only affects tests and is not
blocking any production users or BOM/PCT work. I filed a handful of
PRs to update the most important consumers in the jenkinsci GitHub
organization, but for the sake of posterity the instructions are as
follows:

1. Upgrade jakarta-activation-api and jakarta-mail-api to 2.1.3-1 in a
<dependencyManagement> section (until these are in a BOM release).
2. Upgrade mock-javamail to 2.2, adding exclusions for
jakarta.activation-api, jakarta.mail-api, angus-activation, and
angus-mail.
3. Ensure the dependency on jakarta-mail-api is above the dependency
for mock-javamail, after configuring Surefire to use system property
variables for mail.smtp.class, mail.pop3.class, and mail.imap.class.

Examples here:

https://github.com/jenkinsci/claim-plugin/pull/278
https://github.com/jenkinsci/email-ext-plugin/pull/503
https://github.com/jenkinsci/mailer-plugin/pull/272
https://github.com/jenkinsci/workflow-basic-steps-plugin/pull/300
Reply all
Reply to author
Forward
0 new messages