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/03/24 14:03:29 UTC
svn commit: r757771 - in /labs/magma/trunk:
foundation-website/src/main/java/org/apache/magma/website/templating/
foundation-website/src/main/java/org/apache/magma/website/utils/
foundation-website/src/test/java/org/apache/magma/website/producers/ webs...
Author: simoneg
Date: Tue Mar 24 13:03:28 2009
New Revision: 757771
URL: http://svn.apache.org/viewvc?rev=757771&view=rev
Log:
LABS-321 : fixes in the URL rewriting system to support correct inline admin rewriting.
Modified:
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/TemplateData.java
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/MakeURLRewritingContextBased.aj
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/producers/TestXmlProducer.java
labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj
labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/DirectlyToEditInInline.aj
labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj
labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/UseInlinedAdminTemplate.aj
Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/TemplateData.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/TemplateData.java?rev=757771&r1=757770&r2=757771&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/TemplateData.java (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/TemplateData.java Tue Mar 24 13:03:28 2009
@@ -24,6 +24,13 @@
import java.util.ArrayList;
import java.util.List;
+/**
+ * Contains data gathered parsing an HTML template file.
+ *
+ *
+ *
+ * @author Simone Gianni <si...@apache.org>
+ */
public class TemplateData {
public List<String> zones = new ArrayList<String>();
Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/MakeURLRewritingContextBased.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/MakeURLRewritingContextBased.aj?rev=757771&r1=757770&r2=757771&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/MakeURLRewritingContextBased.aj (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/MakeURLRewritingContextBased.aj Tue Mar 24 13:03:28 2009
@@ -1,37 +1,46 @@
package org.apache.magma.website.utils;
+import org.apache.magma.basics.startup.CycleThreadLocal;
import org.apache.magma.website.Producer;
import org.apache.magma.website.HtmlProducer;
import java.io.OutputStream;
+import java.io.Writer;
import org.apache.magma.website.Head;
public aspect MakeURLRewritingContextBased {
- pointcut producing(URLRewritingStream stream, Producer prod) : execution(* Producer.produce(OutputStream)) && this(prod) && args(stream);
+ private CycleThreadLocal<URLRewritingStream> mystream = new CycleThreadLocal<URLRewritingStream>();
- before(URLRewritingStream stream, Producer prod) : producing(stream, prod) {
- stream.pushBaseUrl(prod.getBasePath());
+ after(URLRewritingStream stream) : execution(URLRewritingStream.new(..)) && this(stream) {
+ mystream.set(stream);
}
- after(URLRewritingStream stream, Producer prod) : producing(stream, prod) {
- stream.popBaseUrl();
+ pointcut producing(Producer prod) :
+ (
+ execution(* Producer+.produce(OutputStream)) ||
+ execution(* HtmlProducer+.produce(Writer)) ||
+ execution(* HtmlProducer+.head(Head))
+ ) && this(prod);
+
+ before(Producer prod) : producing(prod) {
+ URLRewritingStream stream = mystream.get();
+ if (stream == null) return;
+ try {
+ stream.pushBaseUrl(prod.getBasePath());
+ } catch (Throwable e) {
+ return;
+ }
}
- pointcut heading(Head head, HtmlProducer prod) : execution(* HtmlProducer.head(Head)) && this(prod) && args(head);
-
- before(Head head, HtmlProducer prod) : heading(head, prod) {
- OutputStream stream = head.getStream();
- if (!(stream instanceof URLRewritingStream)) return;
- ((URLRewritingStream)stream).pushBaseUrl(prod.getBasePath());
- }
-
- after(Head head, HtmlProducer prod) : heading(head, prod) {
- OutputStream stream = head.getStream();
- if (!(stream instanceof URLRewritingStream)) return;
- ((URLRewritingStream)stream).popBaseUrl();
- }
-
-
-
+ after(Producer prod) : producing(prod) {
+ try {
+ prod.getBasePath();
+ } catch (Throwable e) {
+ return;
+ }
+ URLRewritingStream stream = mystream.get();
+ if (stream == null) return;
+ stream.popBaseUrl();
+ }
}
Modified: labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/producers/TestXmlProducer.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/producers/TestXmlProducer.java?rev=757771&r1=757770&r2=757771&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/producers/TestXmlProducer.java (original)
+++ labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/producers/TestXmlProducer.java Tue Mar 24 13:03:28 2009
@@ -20,6 +20,7 @@
import static org.junit.matchers.JUnitMatchers.*;
import java.io.ByteArrayOutputStream;
+import org.apache.magma.basics.startup.Cycle;
import org.apache.magma.website.teststuff.Person;
import org.junit.Test;
Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj?rev=757771&r1=757770&r2=757771&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj Tue Mar 24 13:03:28 2009
@@ -3,17 +3,15 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
-import org.apache.magma.website.admin.AdminWebHandler;
-import java.util.Map;
import org.apache.magma.website.HtmlProducer;
import org.apache.magma.website.RootWebHandler;
-import org.apache.magma.website.WebHandler;
public aspect AddInlineMenuMethod {
- public HtmlProducer AdminWebHandler.hiddenInlineMenu(Map<Object, Set<AdminAction>> founds) {
+ public HtmlProducer AdminWebHandler.doInlineMenu(Map<Object, Set<AdminAction>> founds) {
Map<Object, List<AdminAction>> filteredactions = new HashMap<Object, List<AdminAction>>();
for (Iterator<Map.Entry<Object, Set<AdminAction>>> iterator = founds.entrySet().iterator(); iterator.hasNext();) {
Map.Entry<Object, Set<AdminAction>> obj = iterator.next();
@@ -27,18 +25,10 @@
public AdminWebHandler RootWebHandler.handleInlineAdministration() {
AdminWebHandler ret = new AdminWebHandler();
- ret.inlined = true;
+ ret.requestInlined = true;
return ret;
}
- public Boolean AdminWebHandler.inlined = false;
-
- public Boolean AdminWebHandler.getRequestInlined() {
- return inlined;
- }
-
- public void AdminWebHandler.setRequestInlined(Boolean inlined) {
- if (inlined != null) this.inlined = inlined;
- }
+ public Boolean AdminWebHandler.requestInlined = false;
}
Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/DirectlyToEditInInline.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/DirectlyToEditInInline.aj?rev=757771&r1=757770&r2=757771&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/DirectlyToEditInInline.aj (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/DirectlyToEditInInline.aj Tue Mar 24 13:03:28 2009
@@ -9,25 +9,19 @@
public aspect DirectlyToEditInInline {
- public Boolean AbstractCrudHandler.inlined = false;
-
- public Boolean AbstractCrudHandler.getRequestInlined() {
- return inlined;
- }
-
- public void AbstractCrudHandler.setRequestInlined(Boolean inlined) {
- if (inlined != null) this.inlined = inlined;
- }
+ public Boolean AbstractCrudHandler.requestInlined = false;
Object around(String link, AbstractCrudHandler handler) :
call(* SmartList.setLink(String)) && args(link) &&
withincode(* AbstractCrudHandler.handleList()) &&
this(handler) {
- GenericClass gc = GenericClass.forClass(handler.getClass());
- List<GenericClass.MethodDef> meths = gc.findAllMethods("handleEdit");
- if (meths.size() > 0) {
- if (Modifier.isPublic(meths.get(0).getBaseMethod().getModifiers())) {
- link = "handleEdit";
+ if (handler.requestInlined) {
+ GenericClass gc = GenericClass.forClass(handler.getClass());
+ List<GenericClass.MethodDef> meths = gc.findAllMethods("handleEdit");
+ if (meths.size() > 0) {
+ if (Modifier.isPublic(meths.get(0).getBaseMethod().getModifiers())) {
+ link = "handleEdit";
+ }
}
}
return proceed(link, handler);
Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj?rev=757771&r1=757770&r2=757771&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj Tue Mar 24 13:03:28 2009
@@ -56,7 +56,8 @@
}
if (founds.size() > 0) {
AdminWebHandler awe = RootWebHandler.getInstance().handleAdministration();
- ((HtmlProducer)ret).compoundWith(awe.hiddenInlineMenu(founds), CompoundType.AFTER);
+ HtmlProducer inlinemenu = awe.doInlineMenu(founds);
+ ((HtmlProducer)ret).compoundWith(inlinemenu, CompoundType.AFTER);
return ret;
}
}
Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/UseInlinedAdminTemplate.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/UseInlinedAdminTemplate.aj?rev=757771&r1=757770&r2=757771&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/UseInlinedAdminTemplate.aj (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/UseInlinedAdminTemplate.aj Tue Mar 24 13:03:28 2009
@@ -10,7 +10,7 @@
after(WebHandler h) returning (Templatable t) : execution(* AdminWebHandler+.*(..)) && (HandlerSetup.doMethod(h) || HandlerSetup.subHandle(h) || HandlerSetup.hiddenMethod(h)) {
if (t == null) return;
- if (h instanceof AdminWebHandler && ((AdminWebHandler)h).inlined != null && ((AdminWebHandler)h).inlined) {
+ if (h instanceof AdminWebHandler && ((AdminWebHandler)h).requestInlined != null && ((AdminWebHandler)h).requestInlined) {
t.setTemplate(new InlinedAdminTemplate());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org