Author: rombert Date: Thu Jun 15 16:12:33 2017 New Revision: 1798852 URL: http://svn.apache.org/viewvc?rev=1798852&view=rev Log: SLING-6964 - SlingEmailClient does not allow accessing email headers
Modified: sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java Modified: sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java URL: http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java?rev=1798852&r1=1798851&r2=1798852&view=diff ============================================================================== --- sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java (original) +++ sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java Thu Jun 15 16:12:33 2017 @@ -18,18 +18,62 @@ */ package org.apache.sling.testing.clients.email; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; + /** * Holds information retrieved from the mock SMTP server deployed in Sling * */ public final class EmailMessage { + public static final String HEADER_FROM = "From"; + public static final String HEADER_TO = "To"; + public static final String HEADER_SUBJECT = "Subject"; + + private Map<String, String> headers = new LinkedHashMap<>(); + private String content; public EmailMessage(String content) { this.content = content; } + /** + * Adds a new header to this email message + * + * @param key the header name + * @param value the header value + */ + public void addHeader(String key, String value) { + headers.put(key, value); + } + + /** + * Returns the value of one of the headers of this email + * + * @param key the header name + * @return the value of the header, possibly <code>null</code> + */ + public String getHeader(String key) { + return headers.get(key); + } + + /** + * Returns an unmodifiable view over the email headers + * + * @return the headers + */ + public Map<String, String> getHeaders() { + return Collections.unmodifiableMap(headers); + } + + /** + * Returns the contents of the email + * + * @return the email content + */ public String getContent() { return content; } Modified: sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java URL: http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java?rev=1798852&r1=1798851&r2=1798852&view=diff ============================================================================== --- sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java (original) +++ sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java Thu Jun 15 16:12:33 2017 @@ -24,6 +24,7 @@ import static org.apache.http.HttpStatus import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; import org.apache.http.Header; @@ -91,6 +92,15 @@ public final class SlingEmailClient exte JsonNode messages = mapper.readTree(response.getContent()); for ( JsonNode emailNode : messages.get("messages") ) { EmailMessage msg = new EmailMessage(emailNode.get(PN_CONTENT).getTextValue()); + Iterator<String> fieldNames = emailNode.getFieldNames(); + while ( fieldNames.hasNext() ) { + String fieldName = fieldNames.next(); + if ( fieldName.equals(PN_CONTENT) ) { + continue; + } + msg.addHeader(fieldName, emailNode.get(fieldName).getTextValue()); + } + emails.add(msg); } } catch (IOException e) { Modified: sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java?rev=1798852&r1=1798851&r2=1798852&view=diff ============================================================================== --- sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java (original) +++ sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java Thu Jun 15 16:12:33 2017 @@ -17,7 +17,7 @@ * under the License. */ -@Version("1.0.0") +@Version("1.1.0") package org.apache.sling.testing.clients.email; import org.osgi.annotation.versioning.Version;