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/09/30 15:30:03 UTC

svn commit: r700465 - in /labs/magma/trunk/website-developer/src/main: java/org/apache/magma/website/developer/ java/org/apache/magma/website/developer/basictracing/ java/org/apache/magma/website/developer/i18n/ resources/org/apache/magma/website/devel...

Author: simoneg
Date: Tue Sep 30 06:30:03 2008
New Revision: 700465

URL: http://svn.apache.org/viewvc?rev=700465&view=rev
Log:
Developer tools for i18n

Added:
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nFileInterceptor.aj
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nHandler.java
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nStats.java
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj
    labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/
    labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/plainout.vm
    labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/sources.vm
Modified:
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/DeveloperHandler.java
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/SettingsFileInterceptor.aj
    labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/basictracing/TracingRequests.aj
    labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/panel.vm

Modified: labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/DeveloperHandler.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/DeveloperHandler.java?rev=700465&r1=700464&r2=700465&view=diff
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/DeveloperHandler.java (original)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/DeveloperHandler.java Tue Sep 30 06:30:03 2008
@@ -45,6 +45,7 @@
 
 import org.apache.magma.website.developer.basictracing.BasicTracer;
 import org.apache.magma.website.developer.basictracing.TracingRequests;
+import org.apache.magma.website.developer.i18n.I18nHandler;
 
 public class DeveloperHandler extends WebHandler {
 
@@ -55,6 +56,10 @@
 		this.url = url;
 	}
 	
+	public I18nHandler handleI18n() {
+		return new I18nHandler();
+	}
+	
 	public HtmlProducer do_default() {
 		return new VelocityHtmlProducer();
 	}

Modified: labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/SettingsFileInterceptor.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/SettingsFileInterceptor.aj?rev=700465&r1=700464&r2=700465&view=diff
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/SettingsFileInterceptor.aj (original)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/SettingsFileInterceptor.aj Tue Sep 30 06:30:03 2008
@@ -17,13 +17,16 @@
 package org.apache.magma.website.developer;
 
 import org.apache.magma.settings.SettingsHolder;
+import org.apache.magma.settings.Settings;
 import java.net.URL;
 import java.io.File;
 
 public aspect SettingsFileInterceptor {
 
-	pointcut ovverridingFile(File f) : execution(* SettingsHolder.overrideWith(File)) && args(f); 
-	pointcut ovverridingUrl(URL f) : execution(* SettingsHolder.overrideWith(URL)) && args(f); 
+	pointcut ovverridingFile(File f) : execution(* SettingsHolder.overrideWith(File)) && 
+	      cflow(execution(* Settings.*(..))) && args(f); 
+	pointcut ovverridingUrl(URL f) : execution(* SettingsHolder.overrideWith(URL)) && 
+	      cflow(execution(* Settings.*(..))) && args(f); 
 	
 	before(File f) : ovverridingFile(f) {
 		SettingsStats.addSource(f);

Modified: labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/basictracing/TracingRequests.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/basictracing/TracingRequests.aj?rev=700465&r1=700464&r2=700465&view=diff
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/basictracing/TracingRequests.aj (original)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/basictracing/TracingRequests.aj Tue Sep 30 06:30:03 2008
@@ -44,12 +44,16 @@
 	}
 	
 	before(Producer p) : execution(* Producer.produce(..)) && this(p) {
-		Method met = p.getCreatingMethod();
-		tracer.addEvent("Producing " + met.getDeclaringClass().getSimpleName() + "." + p.getCreatingMethod().getName() + " [" + p.getClass().getSimpleName() + "]");
+		try {
+			Method met = p.getCreatingMethod();
+			tracer.addEvent("Producing " + met.getDeclaringClass().getSimpleName() + "." + p.getCreatingMethod().getName() + " [" + p.getClass().getSimpleName() + "]");
+		} catch (Throwable t) {}			
 	}
 	after(Producer p) : execution(* Producer.produce(..)) && this(p) {
-		Method met = p.getCreatingMethod();
-		tracer.addEvent("Produced " + met.getDeclaringClass().getSimpleName() + "." + p.getCreatingMethod().getName() + " [" + p.getClass().getSimpleName() + "]");
+		try {
+			Method met = p.getCreatingMethod();
+			tracer.addEvent("Produced " + met.getDeclaringClass().getSimpleName() + "." + p.getCreatingMethod().getName() + " [" + p.getClass().getSimpleName() + "]");
+		} catch (Throwable t) {}
 	}
 	
 	pointcut templateProduce() : execution(* Template+.produce(..));

Added: labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nFileInterceptor.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nFileInterceptor.aj?rev=700465&view=auto
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nFileInterceptor.aj (added)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nFileInterceptor.aj Tue Sep 30 06:30:03 2008
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.magma.website.developer.i18n;
+
+import org.apache.magma.settings.SettingsHolder;
+import org.apache.magma.i18n.LocaleHolder;
+import java.net.URL;
+import java.io.File;
+
+public aspect I18nFileInterceptor {
+
+	pointcut ovverridingFile(File f) : execution(* SettingsHolder.overrideWith(File)) && 
+	      cflow(execution(* LocaleHolder.*(..))) && args(f); 
+	pointcut ovverridingUrl(URL f) : execution(* SettingsHolder.overrideWith(URL)) && 
+	      cflow(execution(* LocaleHolder.*(..))) && args(f); 
+	
+	before(File f) : ovverridingFile(f) {
+		I18nStats.addSource(f);
+	}
+	
+	before(URL f) : ovverridingUrl(f) {
+		I18nStats.addSource(f);
+	}
+	
+}

Added: labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nHandler.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nHandler.java?rev=700465&view=auto
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nHandler.java (added)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nHandler.java Tue Sep 30 06:30:03 2008
@@ -0,0 +1,33 @@
+package org.apache.magma.website.developer.i18n;
+
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.WebHandler;
+import org.apache.magma.website.developer.URLExplainer;
+import org.apache.magma.website.velocity.VelocityHtmlProducer;
+
+public class I18nHandler extends WebHandler {
+
+	private boolean cookieMagma_webdeveloper_i18n_plainout = false;
+	
+	public HtmlProducer doSources() {
+		VelocityHtmlProducer prod = new VelocityHtmlProducer();
+		prod.addParameter("sources", URLExplainer.explainAll(I18nStats.getAll()));
+		return prod;
+	}
+	
+	public HtmlProducer doPlainout(boolean activate) {
+		cookieMagma_webdeveloper_i18n_plainout = activate;
+		return new VelocityHtmlProducer().addParameter("active", cookieMagma_webdeveloper_i18n_plainout);
+	}
+		
+	public boolean isCookieMagma_webdeveloper_i18n_plainout() {
+		return cookieMagma_webdeveloper_i18n_plainout;
+	}
+
+	public void setCookieMagma_webdeveloper_i18n_plainout(
+			boolean cookieMagma_webdeveloper_i18n_plainout) {
+		this.cookieMagma_webdeveloper_i18n_plainout = cookieMagma_webdeveloper_i18n_plainout;
+	}
+	
+	
+}

Added: labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nStats.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nStats.java?rev=700465&view=auto
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nStats.java (added)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/I18nStats.java Tue Sep 30 06:30:03 2008
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.magma.website.developer.i18n;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.magma.website.developer.URLExplainer;
+
+public class I18nStats {
+
+	private static List<String> sources = new ArrayList<String>();
+	
+	public static void addSource(URL url) {
+		if (url == null) return;
+		sources.add("URL " + url.toExternalForm());
+	}
+	
+	public static void addSource(File file) {
+		if (!file.exists()) return;
+		sources.add("FILE " + file.getAbsolutePath());
+	}
+
+	public static List<String> getAll() {
+		return Collections.unmodifiableList(sources);
+	}
+	
+	public static URLExplainer explain(String spec) {
+		return new URLExplainer(spec);
+	}
+	
+	public static boolean contains(String spec) {
+		return sources.contains(spec);
+	}
+	
+}

Added: 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=700465&view=auto
==============================================================================
--- labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj (added)
+++ labs/magma/trunk/website-developer/src/main/java/org/apache/magma/website/developer/i18n/TranslatingInterceptor.aj Tue Sep 30 06:30:03 2008
@@ -0,0 +1,43 @@
+package org.apache.magma.website.developer.i18n;
+
+import org.apache.magma.i18n.LocaleHolder;
+import org.apache.magma.basics.LocalizationContext;
+import org.apache.magma.conversion.Converter;
+import org.apache.magma.conversion.Converters;
+import org.apache.magma.website.HandlerSetup;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+public aspect TranslatingInterceptor percflow(HandlerSetup.inRequest()) {
+
+	pointcut translating(LocalizationContext ctx, String key) :
+		execution(String LocaleHolder.getMessage(LocalizationContext, String)) &&
+		args(ctx, key);
+	
+	private boolean plainout = false;
+	
+	before(HttpServletRequest req) : 
+		HandlerSetup.inRequest() &&
+		args(req, ..) {
+		Cookie[] cookies = req.getCookies();
+		if (cookies != null) {
+			for (Cookie cookie : cookies) {
+				if (cookie.getName().equals("magma_webdeveloper_i18n_plainout")) {
+					Converter<Boolean> conv = Converters.getConverterFor(Boolean.class);
+					plainout = conv.fromString(cookie.getValue());
+					break;
+				}
+			}
+		}
+	}
+	
+	String around(LocalizationContext ctx, String key) : translating(ctx, key) {
+		if (plainout) {
+			return ctx.toString() + "." + LocaleHolder.normalize(key);
+		}
+		return proceed(ctx, key);
+	}
+	
+}

Added: labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/plainout.vm
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/plainout.vm?rev=700465&view=auto
==============================================================================
--- labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/plainout.vm (added)
+++ labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/plainout.vm Tue Sep 30 06:30:03 2008
@@ -0,0 +1,11 @@
+<h1>I18n plain output</h1>
+<p>This function makes all internationalization keys to be sent to output without being translated
+but with full context and key output instead. This way it's possible to see how keys should be written.
+</p>
+#if ($active) 
+<p>The function is currently active</p>
+<a href="plainout-false">Turn it OFF</a>
+#else
+<p>The function is currently not active</p>
+<a href="plainout-true">Turn it ON</a>
+#end
\ No newline at end of file

Added: labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/sources.vm
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/sources.vm?rev=700465&view=auto
==============================================================================
--- labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/sources.vm (added)
+++ labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/i18n/sources.vm Tue Sep 30 06:30:03 2008
@@ -0,0 +1,31 @@
+<div class="website-developer">
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+	<h1>Magma I18n sources</h1>
+	<p>These are all the messages files currently loaded by magma. 
+	Please note the order in which they appear, cause it's the order they are loaded, so
+	if the same property is declared in more than one file the newer one will override the older one</p>
+	<ul class="urls">
+	  #foreach( $explain in $sources )  
+	  <li>
+	  $explain.toHtml()
+	  <br/>
+	  <small><a href="showSettings?url=$explain.originalUrl">Location $explain.originalUrl</a></small>
+	  </li>
+	  #end
+	</ul>
+</div>  

Modified: labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/panel.vm
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/panel.vm?rev=700465&r1=700464&r2=700465&view=diff
==============================================================================
--- labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/panel.vm (original)
+++ labs/magma/trunk/website-developer/src/main/resources/org/apache/magma/website/developer/panel.vm Tue Sep 30 06:30:03 2008
@@ -16,10 +16,15 @@
 limitations under the License.
 -->
 #if ($traceid > 0)
-	<a href="showTrace-$traceid">Show this page trace</a>
+	<b><a href="showTrace-$traceid">Show this page trace</a></b>
 #end
 <ul>
     <li><a href="settings">Settings</a></li>
     <li><a href="environment">Environment</a></li>
     <li><a href="uris">URI Space</a></li>
 </ul>
+<b>I18n</b>
+<ul>
+    <li><a href="i18n/plainout-true">Toggle plain output</a></li>
+    <li><a href="i18n/sources">View i18n sources</a></li>
+</ul>



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