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:00:57 UTC

svn commit: r721212 - in /labs/magma/trunk/email-simulator: ./ 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/main/resources/org/ ...

Author: simoneg
Date: Thu Nov 27 08:00:56 2008
New Revision: 721212

URL: http://svn.apache.org/viewvc?rev=721212&view=rev
Log:
LABS-246 : add-on to web developer to catch outgoing emails

Added:
    labs/magma/trunk/email-simulator/pom.xml
    labs/magma/trunk/email-simulator/src/
    labs/magma/trunk/email-simulator/src/main/
    labs/magma/trunk/email-simulator/src/main/java/
    labs/magma/trunk/email-simulator/src/main/java/org/
    labs/magma/trunk/email-simulator/src/main/java/org/apache/
    labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/
    labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/
    labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailDump.java
    labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolder.java
    labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolderWebHandler.java
    labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailInterceptor.aj
    labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/InstallEmailListInDeveloper.aj
    labs/magma/trunk/email-simulator/src/main/resources/
    labs/magma/trunk/email-simulator/src/main/resources/org/
    labs/magma/trunk/email-simulator/src/main/resources/org/apache/
    labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/
    labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/email/
    labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/email/list.vm
    labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/website/
    labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/website/developer/
    labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/website/developer/emailPanel.vm
    labs/magma/trunk/email-simulator/src/test/
    labs/magma/trunk/email-simulator/src/test/java/
    labs/magma/trunk/email-simulator/src/test/resources/

Added: labs/magma/trunk/email-simulator/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/pom.xml?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/pom.xml (added)
+++ labs/magma/trunk/email-simulator/pom.xml Thu Nov 27 08:00:56 2008
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <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>email-simulator</artifactId>
+  <name>Magma Email Simulator</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>
+    <dependency>
+      <groupId>org.apache.magma</groupId>
+      <artifactId>website-velocity</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.magma</groupId>
+      <artifactId>website-developer</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Added: labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailDump.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailDump.java?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailDump.java (added)
+++ labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailDump.java Thu Nov 27 08:00:56 2008
@@ -0,0 +1,7 @@
+package org.apache.magma.email;
+
+import java.util.Map;
+
+interface EmailDump {
+	public Map<String, String> getDump();
+}

Added: labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolder.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolder.java?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolder.java (added)
+++ labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolder.java Thu Nov 27 08:00:56 2008
@@ -0,0 +1,10 @@
+package org.apache.magma.email;
+
+import java.util.ArrayList;
+import java.util.List;
+
+class EmailHolder {
+
+	public static List<Email> mails = new ArrayList<Email>();
+	public static boolean simulating = true;
+}

Added: labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolderWebHandler.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolderWebHandler.java?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolderWebHandler.java (added)
+++ labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailHolderWebHandler.java Thu Nov 27 08:00:56 2008
@@ -0,0 +1,13 @@
+package org.apache.magma.email;
+
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.WebHandler;
+import org.apache.magma.website.velocity.VelocityHtmlProducer;
+
+public class EmailHolderWebHandler extends WebHandler {
+	
+	public HtmlProducer doList() {
+		return new VelocityHtmlProducer().addParameter("mails", EmailHolder.mails);
+	}
+	
+}

Added: labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailInterceptor.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailInterceptor.aj?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailInterceptor.aj (added)
+++ labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/EmailInterceptor.aj Thu Nov 27 08:00:56 2008
@@ -0,0 +1,29 @@
+package org.apache.magma.email;
+
+import java.util.Map;
+import java.util.HashMap;
+
+import org.aspectj.lang.reflect.MethodSignature;
+
+public aspect EmailInterceptor {
+	
+	declare parents : Email implements EmailDump;
+	
+	private Map<String, String> Email.dump = new HashMap<String, String>();
+	
+	public Map<String, String> Email.getDump() {
+		return dump;
+	}
+	
+	after(Email mail, String arg) : execution(Email Email+.*(String)) && this(mail) && args(arg) {
+		mail.dump.put(thisJoinPointStaticPart.getSignature().getName(), arg);
+	}
+	
+	void around(Email mail) : execution(* Email+.send()) && this(mail) {
+		if (!EmailHolder.simulating) proceed(mail);
+		EmailHolder.mails.add(mail);
+	}
+	
+	
+	
+}

Added: labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/InstallEmailListInDeveloper.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/InstallEmailListInDeveloper.aj?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/InstallEmailListInDeveloper.aj (added)
+++ labs/magma/trunk/email-simulator/src/main/java/org/apache/magma/email/InstallEmailListInDeveloper.aj Thu Nov 27 08:00:56 2008
@@ -0,0 +1,19 @@
+package org.apache.magma.email;
+
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.developer.DeveloperHandler;
+import org.apache.magma.website.producers.CompoundHtmlProducer;
+import org.apache.magma.website.velocity.VelocityHtmlProducer;
+
+public aspect InstallEmailListInDeveloper {
+
+	HtmlProducer around() : execution(HtmlProducer+ DeveloperHandler.doPanel()) {
+		HtmlProducer base = proceed();
+		return new CompoundHtmlProducer(base, new VelocityHtmlProducer("emailPanel"));
+	}
+	
+	public EmailHolderWebHandler DeveloperHandler.handleEmails() {
+		return new EmailHolderWebHandler();
+	}
+	
+}

Added: labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/email/list.vm
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/email/list.vm?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/email/list.vm (added)
+++ labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/email/list.vm Thu Nov 27 08:00:56 2008
@@ -0,0 +1,21 @@
+<h1>E-mails</h1>
+<p>
+  <table>
+    <thead>
+      <tr>
+        <th>From</th>
+        <th>To</th>
+        <th>Subject</th>
+      </tr>
+    </thead>
+    <tbody>
+      #foreach ($mail in $mails) 
+        <tr>
+          <td>$mail.dump.from</td>
+          <td>$mail.dump.to</td>
+          <td>$mail.dump.subject</td>
+        </tr>  
+      #end
+    </tbody>
+  </table>
+</p>
\ No newline at end of file

Added: labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/website/developer/emailPanel.vm
URL: http://svn.apache.org/viewvc/labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/website/developer/emailPanel.vm?rev=721212&view=auto
==============================================================================
--- labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/website/developer/emailPanel.vm (added)
+++ labs/magma/trunk/email-simulator/src/main/resources/org/apache/magma/website/developer/emailPanel.vm Thu Nov 27 08:00:56 2008
@@ -0,0 +1,4 @@
+<b>E-mail</b>
+<ul>
+    <li><a href="emails/list">List sent emails</a></li>
+</ul>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org