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 2009/01/19 04:12:00 UTC

svn commit: r735601 - in /labs/magma/trunk: foundation-basics/src/main/java/org/apache/magma/basics/ foundation-basics/src/main/java/org/apache/magma/basics/context/ foundation-basics/src/main/java/org/apache/magma/basics/utils/ foundation-i18n/src/mai...

Author: simoneg
Date: Sun Jan 18 19:11:58 2009
New Revision: 735601

URL: http://svn.apache.org/viewvc?rev=735601&view=rev
Log:
LABS-279 : i18n system on RunningContext

Added:
    labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/MethodContextElement.java
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Contextualizer.aj   (contents, props changed)
      - copied, changed from r735585, labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/i18n/Contextualizer.aj
    labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/Contextualizer.aj   (contents, props changed)
      - copied, changed from r735585, labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/i18n/Contextualizer.aj
Removed:
    labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/LocalizationContext.java
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/i18n/Contextualizer.aj
    labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/i18n/
Modified:
    labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/RunningContext.java
    labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/utils/SavingStack.java
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/CurrentLocale.java
    labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/LocaleHolder.java
    labs/magma/trunk/foundation-i18n/src/test/java/org/apache/magma/i18n/MatchingTest.java
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj

Added: labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/MethodContextElement.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/MethodContextElement.java?rev=735601&view=auto
==============================================================================
--- labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/MethodContextElement.java (added)
+++ labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/MethodContextElement.java Sun Jan 18 19:11:58 2009
@@ -0,0 +1,31 @@
+package org.apache.magma.basics.context;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+
+public class MethodContextElement implements ContextElement {
+
+	private Method method = null;
+	private Object[] args = null;
+	
+	public MethodContextElement(Method method, Object[] args) {
+		this.method = method;
+		this.args = args;
+	}
+	
+	@Override
+	public String toString() {
+		return method.getName();
+	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		if (!(obj instanceof MethodContextElement)) return false;
+		return ((MethodContextElement)obj).method.equals(this.method) && 
+			(
+					(this.args == ((MethodContextElement)obj).args) ||
+					(Arrays.deepEquals(this.args, ((MethodContextElement)obj).args))
+			);
+	}
+	
+}

Modified: labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/RunningContext.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/RunningContext.java?rev=735601&r1=735600&r2=735601&view=diff
==============================================================================
--- labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/RunningContext.java (original)
+++ labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/context/RunningContext.java Sun Jan 18 19:11:58 2009
@@ -1,5 +1,7 @@
 package org.apache.magma.basics.context;
 
+import java.lang.reflect.Method;
+
 import org.apache.magma.basics.MagmaException;
 import org.apache.magma.basics.utils.SavingStack;
 import org.apache.magma.settings.Settings;
@@ -35,6 +37,17 @@
 		if (!eleClass.isAssignableFrom(popped.getClass())) throw new MagmaException("Running context expected {0}, but found {1}", eleClass, popped);
 	}
 	
+	public void popString() {
+		pop(StringContextElement.class);
+	}
+	
+	public void popClass() {
+		pop(ClassContextElement.class);
+	}
+	
+	public void popMethod() {
+		pop(MethodContextElement.class);
+	}
 	
 	public void push(Class<?> clazz) {
 		super.push(new ClassContextElement(clazz));
@@ -44,4 +57,8 @@
 		super.push(new StringContextElement(value));
 	}
 	
+	public void push(Method method, Object... args) {
+		super.push(new MethodContextElement(method, args));
+	}
+	
 }

Modified: labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/utils/SavingStack.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/utils/SavingStack.java?rev=735601&r1=735600&r2=735601&view=diff
==============================================================================
--- labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/utils/SavingStack.java (original)
+++ labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/basics/utils/SavingStack.java Sun Jan 18 19:11:58 2009
@@ -1,7 +1,6 @@
 package org.apache.magma.basics.utils;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -9,8 +8,13 @@
 
 public class SavingStack<SavePoints, Elements> extends Stack<Elements> {
 
+	private static final long serialVersionUID = 3187369152068393507L;
+	
 	private Map<SavePoints, List<Elements>> saved = new HashMap<SavePoints, List<Elements>>();
 	
+	public SavingStack() {
+	}
+
 	public void saveFor(SavePoints point) {
 		List<Elements> save = new ArrayList<Elements>(super.size());
 		save.addAll(this);

Modified: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java?rev=735601&r1=735600&r2=735601&view=diff
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java (original)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/ContextMatrix.java Sun Jan 18 19:11:58 2009
@@ -2,9 +2,11 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Stack;
 import java.util.StringTokenizer;
 
-import org.apache.magma.basics.LocalizationContext;
+import org.apache.magma.basics.context.ContextElement;
+import org.apache.magma.basics.context.RunningContext;
 
 public class ContextMatrix {
 
@@ -25,14 +27,14 @@
 		return parts[parts.length - 1];
 	}
 
-	public int getScore(LocalizationContext mc) {
+	public int getScore(Stack<ContextElement> mc) {
 		//int maxscore = (mc.size() * (mc.size() + 1)) / 2;
 		int total = 0;
 		int upto = 0;
 		int pos = 0;
-		for (String string : mc) {
+		for (ContextElement ele : mc) {
 			pos++;
-			if (parts[upto].equalsIgnoreCase(string)) {
+			if (parts[upto].equalsIgnoreCase(ele.toString())) {
 				upto++;
 				total += pos;
 				if (upto == parts.length) return total;

Modified: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/CurrentLocale.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/CurrentLocale.java?rev=735601&r1=735600&r2=735601&view=diff
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/CurrentLocale.java (original)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/CurrentLocale.java Sun Jan 18 19:11:58 2009
@@ -5,7 +5,7 @@
 import java.util.Map;
 
 import org.apache.magma.basics.LocalizableString;
-import org.apache.magma.basics.LocalizationContext;
+import org.apache.magma.basics.context.RunningContext;
 import org.apache.magma.settings.Settings;
 
 
@@ -35,7 +35,7 @@
 	public static String convert(String string) {
 		LocaleHolder holder = current.get();
 		if (holder == null) return string;
-		return holder.getMessage(LocalizationContext.current(), string);
+		return holder.getMessage(RunningContext.get(), string);
 	}
 
 	public static Locale getLocale() {

Modified: labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/LocaleHolder.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/LocaleHolder.java?rev=735601&r1=735600&r2=735601&view=diff
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/LocaleHolder.java (original)
+++ labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/LocaleHolder.java Sun Jan 18 19:11:58 2009
@@ -10,8 +10,9 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Stack;
 
-import org.apache.magma.basics.LocalizationContext;
+import org.apache.magma.basics.context.ContextElement;
 import org.apache.magma.settings.SettingsHolder;
 
 public class LocaleHolder {
@@ -90,11 +91,11 @@
 	}
 	
 	
-	public String getMessage(LocalizationContext ct, String original) {
+	public String getMessage(Stack<ContextElement> ct, String original) {
 		String deh = normalize(original);
 		List<ContextMatrix> list = firstLookup.get(deh);
 		if (list == null || list.size() == 0) return original;
-		ct.push(deh);
+		//ct.push(deh);
 		int topscore = 0;
 		ContextMatrix winner = null;
 		for (ContextMatrix cm : list) {
@@ -104,7 +105,7 @@
 				winner = cm;
 			}
 		}
-		ct.pop();
+		//ct.pop();
 		if (winner == null) return original;
 		return winner.getValue();
 	}

Modified: labs/magma/trunk/foundation-i18n/src/test/java/org/apache/magma/i18n/MatchingTest.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/test/java/org/apache/magma/i18n/MatchingTest.java?rev=735601&r1=735600&r2=735601&view=diff
==============================================================================
--- labs/magma/trunk/foundation-i18n/src/test/java/org/apache/magma/i18n/MatchingTest.java (original)
+++ labs/magma/trunk/foundation-i18n/src/test/java/org/apache/magma/i18n/MatchingTest.java Sun Jan 18 19:11:58 2009
@@ -3,16 +3,26 @@
 import static org.junit.Assert.*;
 import static org.hamcrest.CoreMatchers.*;
 
-import org.apache.magma.basics.LocalizationContext;
+import  org.apache.magma.basics.context.RunningContext;
+import org.junit.After;
 import org.junit.Test;
 import org.junit.experimental.theories.DataPoint;
 import org.junit.experimental.theories.DataPoints;
 
 public class MatchingTest {
 
+	@SuppressWarnings("deprecation")
+	@After
+	public void cleanupRunningContext() {
+		RunningContext context = RunningContext.get();
+		while(context.size() > 0) {
+			context.pop();
+		}
+	}
+	
 	@Test
 	public void simpleCompleteMatching() throws Exception {
-		LocalizationContext mc = new LocalizationContext();
+		RunningContext mc = RunningContext.get();
 		mc.push(getClass());
 		mc.push("test");
 		
@@ -25,7 +35,7 @@
 
 	@Test
 	public void simplePartialMatching() throws Exception {
-		LocalizationContext mc = new LocalizationContext();
+		RunningContext mc = RunningContext.get();
 		mc.push(getClass());
 		mc.push("test");
 		
@@ -36,7 +46,7 @@
 	
 	@Test
 	public void simpleNotMatching() throws Exception {
-		LocalizationContext mc = new LocalizationContext();
+		RunningContext mc = RunningContext.get();
 		mc.push("test");
 		
 		ContextMatrix cm = new ContextMatrix(getClass().getSimpleName() + ".test", "test");
@@ -47,7 +57,7 @@
 	
 	@Test
 	public void simpleJumpingMatch() throws Exception {
-		LocalizationContext mc = new LocalizationContext();
+		RunningContext mc = RunningContext.get();
 		mc.push("testingthejump");
 		mc.push(getClass());
 		mc.push("test");
@@ -60,7 +70,7 @@
 	
 	@Test
 	public void betterMatch() throws Exception {
-		LocalizationContext mc = new LocalizationContext();
+		RunningContext mc = RunningContext.get();
 		mc.push("testingthejump");
 		mc.push(getClass());
 		mc.push("test");
@@ -74,7 +84,7 @@
 	
 	@Test
 	public void betterMatchAsPerBug184() throws Exception {
-		LocalizationContext mc = new LocalizationContext();
+		RunningContext mc = RunningContext.get();
 		mc.push("CompoundHtmlProducer");
 		mc.push("BeanFormProducer");
 		mc.push("UserBean");

Copied: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Contextualizer.aj (from r735585, labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/i18n/Contextualizer.aj)
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Contextualizer.aj?p2=labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Contextualizer.aj&p1=labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/i18n/Contextualizer.aj&r1=735585&r2=735601&rev=735601&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/i18n/Contextualizer.aj (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Contextualizer.aj Sun Jan 18 19:11:58 2009
@@ -1,32 +1,31 @@
-package org.apache.magma.website.i18n;
+package org.apache.magma.website;
 
-import org.apache.magma.basics.LocalizationContext;
-import org.apache.magma.website.Producer;
-import org.apache.magma.website.WebHandler;
+import org.apache.magma.basics.context.RunningContext;
 import org.apache.magma.website.HandlerSetup;
+import org.aspectj.lang.reflect.MethodSignature;
 
 public aspect Contextualizer {
 
 	before(WebHandler h) : HandlerSetup.doMethod(h) || HandlerSetup.subHandle(h) || HandlerSetup.hiddenMethod(h) {
-		LocalizationContext context = LocalizationContext.current();
-		context.push(h.getClass().getSimpleName());
-		context.push(thisJoinPoint.getSignature().getName());
+		RunningContext context = RunningContext.get();
+		context.push(h.getClass());
+		context.push(((MethodSignature)thisJoinPoint.getSignature()).getMethod());
 	}
 
 	after(WebHandler h) : HandlerSetup.doMethod(h) || HandlerSetup.subHandle(h) || HandlerSetup.hiddenMethod(h) {
-		LocalizationContext context = LocalizationContext.current();
-		context.pop();
-		context.pop();
+		RunningContext context = RunningContext.get();
+		context.popMethod();
+		context.popClass();
 	}
 	
 	before(Producer p) : (execution(* Producer+.produce(..)) || execution(* Producer+.head(..))) && this(p) {
-		LocalizationContext context = LocalizationContext.current();
-		context.push(p.getClass().getSimpleName());
+		RunningContext context = RunningContext.get();
+		context.push(p.getClass());
 	}
 	
 	after(Producer p) : (execution(* Producer+.produce(..)) || execution(* Producer+.head(..))) && this(p) {
-		LocalizationContext context = LocalizationContext.current();
-		context.pop();
+		RunningContext context = RunningContext.get();
+		context.popClass();
 	}
 	
 }

Propchange: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Contextualizer.aj
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/Contextualizer.aj (from r735585, labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/i18n/Contextualizer.aj)
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/Contextualizer.aj?p2=labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/Contextualizer.aj&p1=labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/i18n/Contextualizer.aj&r1=735585&r2=735601&rev=735601&view=diff
==============================================================================
--- labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/i18n/Contextualizer.aj (original)
+++ labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/Contextualizer.aj Sun Jan 18 19:11:58 2009
@@ -1,24 +1,22 @@
-package org.apache.magma.website.beansview.i18n;
+package org.apache.magma.website.beansview;
 
-import org.apache.magma.basics.LocalizationContext;
+import org.apache.magma.basics.context.RunningContext;
 import org.apache.magma.beans.PropertyInfo;
 import org.apache.magma.view.tree.PropertyNode;
 import org.apache.magma.view.tree.Node;
-import org.apache.magma.website.beansview.ShowBean;
-import org.apache.magma.website.beansview.ShowList;
 
 public privileged aspect Contextualizer {
 
 	void around(ShowBean sb) : execution(void ShowBean+.produce(..)) && this(sb) {
-		LocalizationContext current = LocalizationContext.current();
+		RunningContext current = RunningContext.get();
 		Object bean = sb.bean;
 		if (bean != null) {
-			current.push(bean);
+			current.push(bean.getClass());
 		}
 		try {
 			proceed(sb);
 		} finally {
-			current.pop();
+			current.popClass();
 		}
 	}
 	
@@ -36,18 +34,18 @@
 			return;
 		}
 		PropertyNode node = (PropertyNode)args[0];
-		LocalizationContext current = LocalizationContext.current();
+		RunningContext current = RunningContext.get();
 		PropertyInfo property = node.getProperty();
 		current.push(property.getName());
 		try {
 			proceed();
 		} finally {
-			current.pop();
+			current.popString();
 		}
 	}
 
 	void around(ShowList sl) : execution(void ShowList+.produce(..)) && this(sl) {
-		LocalizationContext current = LocalizationContext.current();
+		RunningContext current = RunningContext.get();
 		Class<?> clz = sl.myclass;
 		if (clz != null) {
 			current.push(clz);
@@ -55,7 +53,7 @@
 		try {
 			proceed(sl);
 		} finally {
-			current.pop();
+			current.popClass();
 		}
 	}
 	

Propchange: labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/Contextualizer.aj
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj?rev=735601&r1=735600&r2=735601&view=diff
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj (original)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj Sun Jan 18 19:11:58 2009
@@ -1,7 +1,9 @@
 package org.apache.magma.website.developer.i18n;
 
+import java.util.Stack;
+
 import org.apache.magma.i18n.LocaleHolder;
-import org.apache.magma.basics.LocalizationContext;
+import org.apache.magma.basics.context.ContextElement;
 import org.apache.magma.conversion.Converter;
 import org.apache.magma.conversion.Converters;
 import org.apache.magma.website.HandlerSetup;
@@ -12,8 +14,8 @@
 
 public aspect TranslatingInterceptor percflow(HandlerSetup.inRequest()) {
 
-	pointcut translating(LocalizationContext ctx, String key) :
-		execution(String LocaleHolder.getMessage(LocalizationContext, String)) &&
+	pointcut translating(Stack<ContextElement> ctx, String key) :
+		execution(String LocaleHolder.getMessage(Stack<ContextElement>, String)) &&
 		args(ctx, key);
 	
 	private boolean plainout = false;
@@ -33,7 +35,7 @@
 		}
 	}
 	
-	String around(LocalizationContext ctx, String key) : translating(ctx, key) {
+	String around(Stack<ContextElement> ctx, String key) : translating(ctx, key) {
 		if (plainout) {
 			return ctx.toString() + "." + LocaleHolder.normalize(key);
 		}



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