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