Skip to content

v9.3.0

Choose a tag to compare

@bbottema bbottema released this 11 Aug 08:02
· 9 commits to master since this release

Simple Java Mail 9.3.0 exposes batch-module as a supported standalone Jakarta Mail orchestration API.

  • #698 adds BatchTransportExecutor<K> for applications that create their own Session and MimeMessage objects without adopting EmailBuilder or Mailer. The main simple-java-mail facade is not required.
  • Register Sessions by cluster key, then run cluster-selected or exact-Session callbacks synchronously or submit them as CompletableFuture work. Each callback receives the actually selected Session and connected Transport.
  • The facade keeps raw leases private, releases connections after successful callbacks, invalidates them after escaping failures, resolves OAuth2 credentials from the selected Session, and provides deterministic graceful or forced shutdown. Its default executor is module-owned; an injected executor remains caller-owned.
  • The existing pooled Mailer path and the standalone facade now share one transport engine. smtp-connection-pool remains the only physical pool owner; do not stack batch/direct orchestration over the Jakarta smtppool provider.
  • The supporting chain is updated to smtp-connection-pool 4.0.1, clustered-object-pool 4.0.3, and generic-object-pool 2.4.2. The published JPMS names are org.simplejavamail.batch, org.simplejavamail.smtpconnectionpool, org.bbottema.clusteredobjectpool, and org.bbottema.genericobjectpool.

See the SMTP connection pooling and batch orchestration guide for the comparison matrix, ownership rules, and complete examples.