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/10/01 10:20:03 UTC

svn commit: r700713 - /labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/ThreadLocalInterceptor.aj

Author: simoneg
Date: Wed Oct  1 01:20:02 2008
New Revision: 700713

URL: http://svn.apache.org/viewvc?rev=700713&view=rev
Log:
LABS-156: Abstract aspect then concretized in web to clean up all thread locals used in the flow of the request handling

Added:
    labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/ThreadLocalInterceptor.aj

Added: labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/ThreadLocalInterceptor.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/ThreadLocalInterceptor.aj?rev=700713&view=auto
==============================================================================
--- labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/ThreadLocalInterceptor.aj (added)
+++ labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/ThreadLocalInterceptor.aj Wed Oct  1 01:20:02 2008
@@ -0,0 +1,22 @@
+package org.apache.magma.beans;
+
+import java.util.Set;
+import java.util.HashSet;
+
+public abstract aspect ThreadLocalInterceptor percflow(scope()){
+
+	private Set<ThreadLocal> locals = new HashSet<ThreadLocal>();
+	
+	public abstract pointcut scope();
+	
+	before(ThreadLocal loc) : call(void ThreadLocal.set(..)) && target(loc) {
+		locals.add(loc);
+	}
+	
+	after() : scope() {
+		for (ThreadLocal local : locals) {
+			local.remove();
+		}
+	}
+	
+}



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