You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2021/05/16 17:13:50 UTC
[sling-org-apache-sling-commons-messaging-mail] 03/05: SLING-10381
Unify Header parameters in API
This is an automated email from the ASF dual-hosted git repository.
olli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-messaging-mail.git
commit fb80257a49980a23574e917510ddbcfb6aa42095
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Sun May 16 19:08:52 2021 +0200
SLING-10381 Unify Header parameters in API
replace Header[] and Map<String, String> by Collection<Header>
---
.../commons/messaging/mail/MessageBuilder.java | 6 ++---
.../mail/internal/SimpleMessageBuilder.java | 30 +++++++++++-----------
.../mail/internal/SimpleMessageBuilderTest.java | 11 +++++---
3 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/src/main/java/org/apache/sling/commons/messaging/mail/MessageBuilder.java b/src/main/java/org/apache/sling/commons/messaging/mail/MessageBuilder.java
index 2d0110c..b69d34e 100644
--- a/src/main/java/org/apache/sling/commons/messaging/mail/MessageBuilder.java
+++ b/src/main/java/org/apache/sling/commons/messaging/mail/MessageBuilder.java
@@ -36,7 +36,7 @@ public interface MessageBuilder {
@NotNull MessageBuilder header(@NotNull final String name, @Nullable final String value);
- @NotNull MessageBuilder headers(@NotNull final Map<String, String> headers);
+ @NotNull MessageBuilder headers(@NotNull final Collection<Header> headers);
@NotNull MessageBuilder from(@NotNull final InternetAddress from);
@@ -100,11 +100,11 @@ public interface MessageBuilder {
@NotNull MessageBuilder attachment(final byte @NotNull [] content, @NotNull final String type, @NotNull final String filename);
- @NotNull MessageBuilder attachment(final byte @NotNull [] content, @NotNull final String type, @NotNull final String filename, @Nullable Header[] headers);
+ @NotNull MessageBuilder attachment(final byte @NotNull [] content, @NotNull final String type, @NotNull final String filename, @Nullable final Collection<Header> headers);
@NotNull MessageBuilder inline(final byte @NotNull [] content, @NotNull final String type, @NotNull final String cid);
- @NotNull MessageBuilder inline(final byte @NotNull [] content, @NotNull final String type, @NotNull final String cid, @Nullable Header[] headers);
+ @NotNull MessageBuilder inline(final byte @NotNull [] content, @NotNull final String type, @NotNull final String cid, @Nullable final Collection<Header> headers);
@NotNull MimeMessage build() throws MessagingException;
diff --git a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilder.java b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilder.java
index 1c4d010..21b637c 100644
--- a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilder.java
+++ b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilder.java
@@ -25,7 +25,6 @@ import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collection;
-import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -53,7 +52,7 @@ public class SimpleMessageBuilder implements MessageBuilder {
private final Session session;
- private final Map<String, String> headers = new HashMap<>();
+ private final List<Header> headers = new LinkedList<>();
private InternetAddress from;
@@ -93,13 +92,14 @@ public class SimpleMessageBuilder implements MessageBuilder {
@Override
public @NotNull MessageBuilder header(@NotNull final String name, @Nullable final String value) {
- headers.put(name, value);
+ final Header header = new Header(name, value);
+ headers.add(header);
return this;
}
@Override
- public @NotNull MessageBuilder headers(@NotNull final Map<String, String> headers) {
- this.headers.putAll(headers);
+ public @NotNull MessageBuilder headers(@NotNull final Collection<Header> headers) {
+ this.headers.addAll(headers);
return this;
}
@@ -329,7 +329,7 @@ public class SimpleMessageBuilder implements MessageBuilder {
}
@Override
- public @NotNull MessageBuilder attachment(final byte @NotNull [] content, @NotNull final String type, @NotNull final String filename, @Nullable Header[] headers) {
+ public @NotNull MessageBuilder attachment(final byte @NotNull [] content, @NotNull final String type, @NotNull final String filename, @Nullable final Collection<Header> headers) {
final Attachment attachment = new Attachment(content, type, filename, headers);
this.attachments.add(attachment);
return this;
@@ -341,13 +341,13 @@ public class SimpleMessageBuilder implements MessageBuilder {
}
@Override
- public @NotNull MessageBuilder inline(final byte @NotNull [] content, @NotNull final String type, @NotNull final String cid, @Nullable Header[] headers) {
+ public @NotNull MessageBuilder inline(final byte @NotNull [] content, @NotNull final String type, @NotNull final String cid, @Nullable final Collection<Header> headers) {
final Inline inline = new Inline(content, type, cid, headers);
this.inlines.add(inline);
return this;
}
- private Map<String, String> headers() {
+ private List<Header> headers() {
return headers;
}
@@ -410,8 +410,8 @@ public class SimpleMessageBuilder implements MessageBuilder {
public @NotNull MimeMessage build() throws MessagingException {
final MimeMessage message = new MimeMessage(session);
- for (final Map.Entry<String, String> header : headers().entrySet()) {
- message.setHeader(header.getKey(), header.getValue());
+ for (final Header header : headers()) {
+ message.setHeader(header.getName(), header.getValue());
}
message.setFrom(from());
@@ -513,7 +513,7 @@ public class SimpleMessageBuilder implements MessageBuilder {
part.setDataHandler(handler);
}
- private static void setHeaders(final MimeBodyPart part, final Header[] headers) throws MessagingException {
+ private static void setHeaders(final MimeBodyPart part, final Collection<Header> headers) throws MessagingException {
for (final Header header : headers) {
part.setHeader(header.getName(), header.getValue());
}
@@ -527,9 +527,9 @@ public class SimpleMessageBuilder implements MessageBuilder {
final String filename;
- final Header[] headers;
+ final Collection<Header> headers;
- Attachment(final byte @NotNull [] content, @NotNull final String type, @NotNull final String filename, @Nullable final Header[] headers) {
+ Attachment(final byte @NotNull [] content, @NotNull final String type, @NotNull final String filename, @Nullable final Collection<Header> headers) {
this.content = content;
this.type = type;
this.filename = filename;
@@ -546,9 +546,9 @@ public class SimpleMessageBuilder implements MessageBuilder {
final String cid;
- final Header[] headers;
+ final Collection<Header> headers;
- Inline(final byte @NotNull [] content, @NotNull final String type, @NotNull final String cid, @Nullable final Header[] headers) {
+ Inline(final byte @NotNull [] content, @NotNull final String type, @NotNull final String cid, @Nullable final Collection<Header> headers) {
this.content = content;
this.type = type;
this.cid = cid;
diff --git a/src/test/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilderTest.java b/src/test/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilderTest.java
index 6b1bc82..a1c1fbb 100644
--- a/src/test/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilderTest.java
+++ b/src/test/java/org/apache/sling/commons/messaging/mail/internal/SimpleMessageBuilderTest.java
@@ -18,11 +18,14 @@
*/
package org.apache.sling.commons.messaging.mail.internal;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import jakarta.mail.Header;
import jakarta.mail.Session;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeMessage;
@@ -70,10 +73,10 @@ public class SimpleMessageBuilderTest {
@Test
public void testHeaders() throws Exception {
- final Map<String, String> headers = new HashMap<>();
- headers.put("a", "1");
- headers.put("b", "2");
- headers.put("c", "3");
+ final Collection<Header> headers = new ArrayList<>();
+ headers.add(new Header("a", "1"));
+ headers.add(new Header("b", "2"));
+ headers.add(new Header("c", "3"));
final Session session = Session.getInstance(properties);
final SimpleMessageBuilder builder = new SimpleMessageBuilder(session);
builder.headers(headers);