[prev in list] [next in list] [prev in thread] [next in thread]
List: james-dev
Subject: [james-project] 01/04: JAMES-2902 Allow to pass additional hooks within SmtpConfiguration
From: btellier () apache ! org
Date: 2019-09-30 5:58:03
Message-ID: 20190930055803.42F9D81E76 () gitbox ! apache ! org
[Download RAW message or body]
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 0a269a50ffbfb8aa5a6fdcfa2c3cf52d00e384d2
Author: Benoit Tellier <btellier@linagora.com>
AuthorDate: Thu Sep 26 10:32:38 2019 +0700
JAMES-2902 Allow to pass additional hooks within SmtpConfiguration
---
.../mailets/configuration/SmtpConfiguration.java | 25 ++++++++++++++++++++--
.../src/test/resources/smtpserver.xml | 6 ++++++
2 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/SmtpConfiguration.java \
b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/SmtpConfiguration.java
index fc4fac5..40bcb31 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/SmtpConfiguration.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/SmtpConfiguration.java
@@ -30,6 +30,7 @@ import java.util.HashMap;
import java.util.Optional;
import org.apache.commons.io.IOUtils;
+import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
import com.github.mustachejava.DefaultMustacheFactory;
import com.github.mustachejava.Mustache;
@@ -40,6 +41,14 @@ public class SmtpConfiguration implements SerializableAsXml {
public static final boolean AUTH_REQUIRED = true;
public static final SmtpConfiguration DEFAULT = \
SmtpConfiguration.builder().build();
+ static class HookConfigurationEntry {
+ String hookFqcn;
+
+ HookConfigurationEntry(String hookFqcn) {
+ this.hookFqcn = hookFqcn;
+ }
+ }
+
public static class Builder {
private static final int DEFAULT_DISABLED = 0;
@@ -48,6 +57,7 @@ public class SmtpConfiguration implements SerializableAsXml {
private Optional<Boolean> verifyIndentity;
private Optional<Boolean> bracketEnforcement;
private Optional<String> authorizedAddresses;
+ private ImmutableList.Builder<HookConfigurationEntry> addittionalHooks;
public Builder() {
authorizedAddresses = Optional.empty();
@@ -55,6 +65,7 @@ public class SmtpConfiguration implements SerializableAsXml {
verifyIndentity = Optional.empty();
maxMessageSizeInKb = Optional.empty();
bracketEnforcement = Optional.empty();
+ addittionalHooks = ImmutableList.builder();
}
public Builder withAutorizedAddresses(String authorizedAddresses) {
@@ -94,12 +105,18 @@ public class SmtpConfiguration implements SerializableAsXml {
return this;
}
+ public Builder addHook(String hookFQCN) {
+ this.addittionalHooks.add(new HookConfigurationEntry(hookFQCN));
+ return this;
+ }
+
public SmtpConfiguration build() {
return new SmtpConfiguration(authorizedAddresses,
authRequired.orElse(!AUTH_REQUIRED),
bracketEnforcement.orElse(true),
verifyIndentity.orElse(true),
- maxMessageSizeInKb.orElse(DEFAULT_DISABLED));
+ maxMessageSizeInKb.orElse(DEFAULT_DISABLED),
+ addittionalHooks.build());
}
}
@@ -112,13 +129,16 @@ public class SmtpConfiguration implements SerializableAsXml {
private final boolean bracketEnforcement;
private final boolean verifyIndentity;
private final int maxMessageSizeInKb;
+ private final ImmutableList<HookConfigurationEntry> addittionalHooks;
- public SmtpConfiguration(Optional<String> authorizedAddresses, boolean \
authRequired, boolean bracketEnforcement, boolean verifyIndentity, int \
maxMessageSizeInKb) { + private SmtpConfiguration(Optional<String> \
authorizedAddresses, boolean authRequired, boolean bracketEnforcement, + \
boolean verifyIndentity, int maxMessageSizeInKb, \
ImmutableList<HookConfigurationEntry> addittionalHooks) { this.authorizedAddresses = \
authorizedAddresses; this.authRequired = authRequired;
this.bracketEnforcement = bracketEnforcement;
this.verifyIndentity = verifyIndentity;
this.maxMessageSizeInKb = maxMessageSizeInKb;
+ this.addittionalHooks = addittionalHooks;
}
@Override
@@ -130,6 +150,7 @@ public class SmtpConfiguration implements SerializableAsXml {
scopes.put("verifyIdentity", verifyIndentity);
scopes.put("maxmessagesize", maxMessageSizeInKb);
scopes.put("bracketEnforcement", bracketEnforcement);
+ scopes.put("hooks", addittionalHooks);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Writer writer = new OutputStreamWriter(byteArrayOutputStream);
diff --git a/server/mailet/integration-testing/src/test/resources/smtpserver.xml \
b/server/mailet/integration-testing/src/test/resources/smtpserver.xml index \
3466c9c..e02e4a8 100644
--- a/server/mailet/integration-testing/src/test/resources/smtpserver.xml
+++ b/server/mailet/integration-testing/src/test/resources/smtpserver.xml
@@ -44,6 +44,9 @@
<handlerchain>
<handler class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/>
<handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/>
+ {{#hooks}}
+ <handler class="{{hookFqcn}}"/>
+ {{/hooks}}
</handlerchain>
</smtpserver>
<smtpserver enabled="true">
@@ -74,6 +77,9 @@
<handlerchain>
<handler class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/>
<handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/>
+ {{#hooks}}
+ <handler class="{{hookFqcn}}"/>
+ {{/hooks}}
</handlerchain>
</smtpserver>
</smtpservers>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic