You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2008/11/27 17:04:36 UTC
svn commit: r721215 - in /labs/magma/trunk/website-email: ./ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/magma/ src/main/java/org/apache/magma/email/
src/main/resources/ src/test/ src/test/java/ s...
Author: simoneg
Date: Thu Nov 27 08:04:35 2008
New Revision: 721215
URL: http://svn.apache.org/viewvc?rev=721215&view=rev
Log:
LABS-247 : Addon to email to use HtmlProducer's
Added:
labs/magma/trunk/website-email/pom.xml
labs/magma/trunk/website-email/src/
labs/magma/trunk/website-email/src/main/
labs/magma/trunk/website-email/src/main/java/
labs/magma/trunk/website-email/src/main/java/org/
labs/magma/trunk/website-email/src/main/java/org/apache/
labs/magma/trunk/website-email/src/main/java/org/apache/magma/
labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/
labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/AddWebBasedEmailMethods.aj
labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/EmailI18n.aj
labs/magma/trunk/website-email/src/main/resources/
labs/magma/trunk/website-email/src/test/
labs/magma/trunk/website-email/src/test/java/
labs/magma/trunk/website-email/src/test/resources/
Added: labs/magma/trunk/website-email/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-email/pom.xml?rev=721215&view=auto
==============================================================================
--- labs/magma/trunk/website-email/pom.xml (added)
+++ labs/magma/trunk/website-email/pom.xml Thu Nov 27 08:04:35 2008
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>magma-parent</artifactId>
+ <groupId>org.apache.magma</groupId>
+ <version>1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-email</artifactId>
+ <name>Magma Website based Email</name>
+ <version>0.0.1-SNAPSHOT</version>
+ <description/>
+ <packaging>magma</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>foundation-email</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>foundation-website</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
Added: labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/AddWebBasedEmailMethods.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/AddWebBasedEmailMethods.aj?rev=721215&view=auto
==============================================================================
--- labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/AddWebBasedEmailMethods.aj (added)
+++ labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/AddWebBasedEmailMethods.aj Thu Nov 27 08:04:35 2008
@@ -0,0 +1,63 @@
+package org.apache.magma.email;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.magma.basics.MagmaException;
+import org.apache.magma.website.Head;
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.utils.URLRewritingStream;
+import org.apache.magma.website.HandlerSetup;
+
+public aspect AddWebBasedEmailMethods {
+
+ private static ThreadLocal<String> absoluteBaseUrl = new ThreadLocal<String>();
+
+ before(HttpServletRequest req) :
+ HandlerSetup.inRequest() &&
+ args(req,..) {
+ StringBuffer buff = req.getRequestURL();
+ try {
+ URL url = new URL(buff.toString());
+ url = new URL(url.getProtocol(), url.getHost(), url.getPort(), req.getContextPath());
+ absoluteBaseUrl.set(url.toExternalForm());
+ } catch (MalformedURLException e) {
+ }
+ }
+
+
+ public Email Email.html(HtmlProducer producer) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ String abs = absoluteBaseUrl.get();
+ if (abs == null) abs = "";
+ URLRewritingStream str = new URLRewritingStream(baos, abs);
+ str.setBaseUrl(producer.getBasePath());
+ OutputStreamWriter osw = new OutputStreamWriter(str);
+ try {
+ osw.append("<html><head>");
+ osw.flush();
+ Head h = new Head(str);
+ producer.head(h);
+ osw.append("</head><body>");
+ osw.flush();
+ producer.produce(str);
+ osw.append("</body></html>");
+ osw.flush();
+ } catch (IOException e1) {
+ throw new MagmaException(e1, "Error producing email HTML");
+ }
+ try {
+ this.html(new String(baos.toByteArray(), "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ // should never happen
+ }
+ return this;
+ }
+
+}
Added: labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/EmailI18n.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/EmailI18n.aj?rev=721215&view=auto
==============================================================================
--- labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/EmailI18n.aj (added)
+++ labs/magma/trunk/website-email/src/main/java/org/apache/magma/email/EmailI18n.aj Thu Nov 27 08:04:35 2008
@@ -0,0 +1,14 @@
+package org.apache.magma.email;
+
+import org.apache.magma.basics.LocalizableString;
+import org.apache.magma.email.Email;
+
+public aspect EmailI18n {
+
+ Email around(Email mail, String subject) :
+ execution(* Email+.subject(String)) &&
+ args(subject) && this(mail) {
+ return proceed(mail, new LocalizableString(subject).toString());
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org