[jboss-cvs] jboss-seam/src/mail/org/jboss/seam/mail/ui ...
Peter Muir
peter at bleepbleep.org.uk
Thu Mar 22 14:06:15 EDT 2007
User: pmuir
Date: 07/03/22 14:06:15
Modified: src/mail/org/jboss/seam/mail/ui UIMessage.java
AddressComponent.java UIBody.java
MailComponent.java UISubject.java
Log:
JBSEAM-1006
Revision Changes Path
1.12 +24 -0 jboss-seam/src/mail/org/jboss/seam/mail/ui/UIMessage.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIMessage.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/mail/org/jboss/seam/mail/ui/UIMessage.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- UIMessage.java 22 Mar 2007 16:18:30 -0000 1.11
+++ UIMessage.java 22 Mar 2007 18:06:15 -0000 1.12
@@ -8,6 +8,7 @@
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
+import javax.mail.internet.InternetHeaders;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
@@ -44,6 +45,8 @@
private String urlBase;
+ private String charset;
+
/**
* Get the JavaMail Session to use. If not set the default session is used
*/
@@ -224,4 +227,25 @@
this.urlBase = urlBase;
}
+ public String getCharset()
+ {
+ if (charset != null)
+ {
+ return charset;
+ }
+ else if (getString("charset") != null)
+ {
+ return getString("charset");
+ }
+ else
+ {
+ return FacesContext.getCurrentInstance().getResponseWriter().getCharacterEncoding();
+ }
+ }
+
+ public void setCharset(String charset)
+ {
+ this.charset = charset;
+ }
+
}
1.3 +10 -2 jboss-seam/src/mail/org/jboss/seam/mail/ui/AddressComponent.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AddressComponent.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/mail/org/jboss/seam/mail/ui/AddressComponent.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- AddressComponent.java 24 Jan 2007 22:21:51 -0000 1.2
+++ AddressComponent.java 22 Mar 2007 18:06:15 -0000 1.3
@@ -26,7 +26,15 @@
{
InternetAddress address = new InternetAddress();
address.setAddress(getAddress() != null ? getAddress() : encode(facesContext));
+ String charset = findMessage().getCharset();
+ if (charset == null)
+ {
address.setPersonal(getName());
+ }
+ else
+ {
+ address.setPersonal(getName(), charset);
+ }
address.validate();
return address;
}
1.9 +6 -4 jboss-seam/src/mail/org/jboss/seam/mail/ui/UIBody.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIBody.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/mail/org/jboss/seam/mail/ui/UIBody.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- UIBody.java 19 Feb 2007 17:04:10 -0000 1.8
+++ UIBody.java 22 Mar 2007 18:06:15 -0000 1.9
@@ -86,10 +86,11 @@
{
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setDisposition("inline");
- if ( facesContext.getResponseWriter().getCharacterEncoding() != null)
+ String charset = findMessage().getCharset();
+ if ( charset != null)
{
bodyPart.setContent(body, "text/plain; charset="
- + facesContext.getResponseWriter().getCharacterEncoding() + "; format=flowed");
+ + charset + "; format=flowed");
}
else
{
@@ -103,10 +104,11 @@
{
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setDisposition("inline");
- if ( facesContext.getResponseWriter().getCharacterEncoding() != null)
+ String charset = findMessage().getCharset();
+ if ( charset != null)
{
bodyPart.setContent(body, "text/html; charset="
- + facesContext.getResponseWriter().getCharacterEncoding());
+ + charset);
}
else
{
1.6 +20 -9 jboss-seam/src/mail/org/jboss/seam/mail/ui/MailComponent.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MailComponent.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/mail/org/jboss/seam/mail/ui/MailComponent.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- MailComponent.java 2 Feb 2007 21:20:41 -0000 1.5
+++ MailComponent.java 22 Mar 2007 18:06:15 -0000 1.6
@@ -20,6 +20,10 @@
public abstract class MailComponent extends UIComponentBase
{
+ // Cache Message
+
+ private UIMessage message;
+
private static final String FAMILY = "org.jboss.seam.mail";
@Override
@@ -58,15 +62,22 @@
* @throws MessagingException
*/
public MimeMessage findMimeMessage() throws MessagingException {
- UIMessage parent = (UIMessage) findParent(this, UIMessage.class);
- if (parent != null)
- {
- return parent.getMimeMessage();
+ return findMessage().getMimeMessage();
}
- else
+
+ /**
+ * look up the tree for UIMessage
+ */
+ public UIMessage findMessage() {
+ if (message == null)
{
- return null;
+ message = (UIMessage) findParent(this, UIMessage.class);
+ if (message == null)
+ {
+ throw new UnsupportedOperationException("Must have a m:message tag in the tree");
+ }
}
+ return message;
}
public MimeMultipart getRootMultipart() throws IOException, MessagingException {
1.3 +9 -1 jboss-seam/src/mail/org/jboss/seam/mail/ui/UISubject.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UISubject.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/mail/org/jboss/seam/mail/ui/UISubject.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- UISubject.java 24 Jan 2007 22:21:51 -0000 1.2
+++ UISubject.java 22 Mar 2007 18:06:15 -0000 1.3
@@ -17,8 +17,16 @@
try
{
String subject = encode(facesContext);
+ String charset = findMessage().getCharset();
+ if (charset == null)
+ {
findMimeMessage().setSubject(subject);
}
+ else
+ {
+ findMimeMessage().setSubject(subject, charset);
+ }
+ }
catch (MessagingException e)
{
throw new FacesException(e.getMessage(), e);
More information about the jboss-cvs-commits
mailing list