This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v4
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/v4 by this push:
new 2e656191d9c CAUSEWAY-3892: work on deprecations (4)
2e656191d9c is described below
commit 2e656191d9c9261a0702c26687983e89e3dc3c78
Author: Andi Huber <[email protected]>
AuthorDate: Fri Jun 13 11:45:49 2025 +0200
CAUSEWAY-3892: work on deprecations (4)
- recovers javadoc from prev. commit
---
.../core/config/CausewayModuleCoreConfig.java | 9 ++-
.../causeway/core/config/EmailConfiguration.java | 84 ++++++++++++++++++++++
2 files changed, 88 insertions(+), 5 deletions(-)
diff --git
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
index 2cfc7dbedb9..15668f794af 100644
---
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
+++
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayModuleCoreConfig.java
@@ -76,7 +76,6 @@ public EmailConfiguration emailConfiguration(
@Value("#{systemProperties['spring.mail.properties.mail.smtp.timeout']}")
Integer smtpTimeout,
@Value("#{systemProperties['spring.mail.properties.mail.smtp.connectiontimeout']}")
Integer smtpConnectionTimeout) {
-
var emailConfiguration =
conf.getCore().getRuntimeServices().getEmail();
String senderUsername = _Strings.emptyToNull(senderEmailUsername);
@@ -87,10 +86,10 @@ public EmailConfiguration emailConfiguration(
int socketTimeout = smtpTimeout!=null ? smtpTimeout : 2000;
int socketConnectionTimeout = smtpConnectionTimeout!=null ?
smtpConnectionTimeout : 2000;
boolean isThrowExceptionOnFail =
emailConfiguration.isThrowExceptionOnFail();
- String senderAddress = emailConfiguration.getSender().getAddress();
- String overrideTo = emailConfiguration.getOverride().getTo();
- String overrideCc = emailConfiguration.getOverride().getCc();
- String overrideBcc = emailConfiguration.getOverride().getBcc();
+ String senderAddress =
_Strings.emptyToNull(emailConfiguration.getSender().getAddress());
+ String overrideTo =
_Strings.emptyToNull(emailConfiguration.getOverride().getTo());
+ String overrideCc =
_Strings.emptyToNull(emailConfiguration.getOverride().getCc());
+ String overrideBcc =
_Strings.emptyToNull(emailConfiguration.getOverride().getBcc());
return new EmailConfiguration(senderUsername, senderPassword,
senderHostName, senderPort,
isSenderTlsEnabled, socketTimeout, socketConnectionTimeout,
diff --git
a/core/config/src/main/java/org/apache/causeway/core/config/EmailConfiguration.java
b/core/config/src/main/java/org/apache/causeway/core/config/EmailConfiguration.java
index 6774f9f2331..9f55fa62cf5 100644
---
a/core/config/src/main/java/org/apache/causeway/core/config/EmailConfiguration.java
+++
b/core/config/src/main/java/org/apache/causeway/core/config/EmailConfiguration.java
@@ -19,16 +19,100 @@
package org.apache.causeway.core.config;
public record EmailConfiguration(
+ /**
+ * Specifies the username to use to connect to the SMTP service.
+ * <p>
+ * If not specified, then the sender's {@link #getAddress() email address}
will be used instead.
+ * <p>
+ * <code>spring.mail.username</code>
+ */
String senderUsername,
+ /**
+ * Specifies the password (corresponding to the {@link #getUsername()
username} to connect to the
+ * SMTP service.
+ * <p>
+ * This configuration property is mandatory (for the default
implementation of the
+ * {@link org.apache.causeway.applib.services.email.EmailService}, at
least).
+ * <p>
+ * <code>spring.mail.password</code>
+ */
String senderPassword,
+ /**
+ * Specifies the host running the SMTP service.
+ * <p>
+ * If not specified, then the value used depends upon the email
implementation.
+ * The default implementation will use the <code>mail.smtp.host</code>
system
+ * property.
+ * <p>
+ * <code>spring.mail.host</code>
+ */
String senderHostName,
+ /**
+ * The port to use for sending email.
+ * <p>
+ * <code>spring.mail.port</code>
+ */
int senderPort,
+ /**
+ * Whether TLS encryption should be started (that is,
<code>STARTTLS</code>).
+ * <p>
+ * <code>spring.mail.javamail.properties.mail.smtp.starttls.enable</code>
+ */
boolean isSenderTlsEnabled,
+ /**
+ * The maximum number of milliseconds to wait to obtain a socket before
timing
+ * out.
+ * <p>
+ * <code>spring.mail.properties.mail.smtp.timeout</code>
+ */
int socketTimeout,
+ /**
+ * The maximum number of milliseconds to wait to obtain a socket connection
+ * before timing out.
+ * <p>
+ * <code>spring.mail.properties.mail.smtp.connectiontimeout</code>
+ */
int socketConnectionTimeout,
+ /**
+ * If an email fails to send, whether to propagate the exception (meaning
that potentially the end-user
+ * might see the exception), or whether instead to just indicate failure
through the return value of
+ * the method ({@link
org.apache.causeway.applib.services.email.EmailService#send(List, List, List,
String, String, DataSource...)}
+ * that's being called.
+ * <p>
+ * <code>causeway.core.runtime-services.email.throwExceptionOnFail</code>
+ */
boolean isThrowExceptionOnFail,
+ /**
+ * Specifies the email address of the user sending the email.
+ * <p>
+ * If the {@link #getUsername() username} is not specified, is also used
as the username to
+ * connect to the SMTP service.
+ * <p>
+ * This configuration property is mandatory (for the default
implementation of the
+ * {@link org.apache.causeway.applib.services.email.EmailService}, at
least).
+ * <p>
+ * <code>causeway.core.runtime-services.email.sender.address</code>
+ */
String senderAddress,
+ /**
+ * Intended for testing purposes only, if set then the requested
<code>to:</code> of the email will
+ * be ignored, and instead sent to this email address instead.
+ * <p>
+ * <code>causeway.core.runtime-services.email.override.to</code>
+ */
String overrideTo,
+ /**
+ * Intended for testing purposes only, if set then the requested
<code>cc:</code> of the email will
+ * be ignored, and instead sent to this email address instead.
+ * <p>
+ * <code>causeway.core.runtime-services.email.override.cc</code>
+ */
String overrideCc,
+ /**
+ * Intended for testing purposes only, if set then the requested
<code>bcc:</code> of the email will
+ * be ignored, and instead sent to this email address instead.
+ * <p>
+ * <code>causeway.core.runtime-services.email.override.bcc</code>
+ */
String overrideBcc) {
}