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