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/25 03:55:32 UTC

svn commit: r758133 - in /labs/magma/trunk/foundation-website/src: main/java/org/apache/magma/website/context/ main/java/org/apache/magma/website/producers/ test/java/org/apache/magma/website/

Author: simoneg
Date: Wed Mar 25 02:55:31 2009
New Revision: 758133

URL: http://svn.apache.org/viewvc?rev=758133&view=rev
Log:
LABS-313 : when possible use java parameter names as producer parameter name.

Modified:
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/Contextualizer.aj
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/WebMethodContextElement.java
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/producers/ParametrizeHtmlProducer.aj
    labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java

Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/Contextualizer.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/Contextualizer.aj?rev=758133&r1=758132&r2=758133&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/Contextualizer.aj (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/Contextualizer.aj Wed Mar 25 02:55:31 2009
@@ -1,6 +1,5 @@
 package org.apache.magma.website.context;
 
-import org.apache.magma.basics.MagmaException;
 import org.apache.magma.basics.context.RunningContext;
 import org.apache.magma.basics.context.SubRunningContext;
 import org.apache.magma.website.HandlerSetup;
@@ -15,7 +14,8 @@
 	
 	before(WebHandler h) : HandlerSetup.doMethod(h) {
 		SubRunningContext context = RunningContext.get();
-		WebMethodContextElement wmce = new WebMethodContextElement(((MethodSignature)thisJoinPoint.getSignature()).getMethod(), thisJoinPoint.getArgs(), h);
+		MethodSignature sig = (MethodSignature)thisJoinPointStaticPart.getSignature();
+		WebMethodContextElement wmce = new WebMethodContextElement(sig.getMethod(), thisJoinPoint.getArgs(), h, sig.getParameterNames());
 		context.push(wmce);
 	}
 
@@ -26,7 +26,8 @@
 
 	before(WebHandler h) : HandlerSetup.subHandle(h) {
 		SubRunningContext context = RunningContext.get();
-		WebMethodContextElement wmce = new WebMethodContextElement(((MethodSignature)thisJoinPoint.getSignature()).getMethod(), thisJoinPoint.getArgs(), h);
+		MethodSignature sig = (MethodSignature)thisJoinPointStaticPart.getSignature();		
+		WebMethodContextElement wmce = new WebMethodContextElement(sig.getMethod(), thisJoinPoint.getArgs(), h, sig.getParameterNames());
 		context.push(wmce);
 	}
 

Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/WebMethodContextElement.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/WebMethodContextElement.java?rev=758133&r1=758132&r2=758133&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/WebMethodContextElement.java (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/context/WebMethodContextElement.java Wed Mar 25 02:55:31 2009
@@ -11,6 +11,7 @@
 
 	private boolean urlSegmentComputed = false;
 	private String urlSegment = null;
+	private String[] paramNames = null;
 	private WebHandler handlerInstance = null;
 	
 	public WebMethodContextElement(Method method, Object[] args, WebHandler instance) {
@@ -18,6 +19,12 @@
 		this.handlerInstance = instance;
 	}
 	
+	public WebMethodContextElement(Method method, Object[] args, WebHandler instance, String[] paramNames) {
+		this(method, args, instance);
+		this.paramNames = paramNames;
+	}
+	
+	
 	public String getURLSegment() {
 		if (urlSegmentComputed) return urlSegment;
 		urlSegment = null;
@@ -65,4 +72,8 @@
 		return handlerInstance;
 	}
 
+	public String[] getParamNames() {
+		return paramNames;
+	}
+
 }

Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/producers/ParametrizeHtmlProducer.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/producers/ParametrizeHtmlProducer.aj?rev=758133&r1=758132&r2=758133&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/producers/ParametrizeHtmlProducer.aj (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/producers/ParametrizeHtmlProducer.aj Wed Mar 25 02:55:31 2009
@@ -41,9 +41,17 @@
 		WebMethodContextElement ele = RunningContext.get().getLast(WebMethodContextElement.class);
 		if (ele == null) return;
 		
-		for (Object object : ele.getArgs()) {
+		String[] paramNames = ele.getParamNames();
+		Object[] args = ele.getArgs();
+		if (paramNames != null) {
+			for (int i = 0; i < paramNames.length; i++) {
+				producer.addParameter(paramNames[i], args[i]);
+			}
+		}
+		for (Object object : args) {
 			producer.addParameter(object);
 		}
+		
 		String methodName = ele.getMethod().getName();
 		if (methodName.startsWith("do")) {
 			methodName = methodName.substring(2);

Modified: labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java?rev=758133&r1=758132&r2=758133&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java (original)
+++ labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java Wed Mar 25 02:55:31 2009
@@ -61,6 +61,7 @@
 		assertEquals("yesterday", params[3]);
 		assertSame(def.person, params[4]);
 		
+		
 		ProducerParameters parameters = prod.getHPParameters();
 		// This feature has been disabled, see LABS-301
 		//Map<String, Object> parmap = parameters.getParameters();
@@ -185,7 +186,16 @@
 			one(session).setAttribute("name", "ciao");			
 		}};
 		def.setupDefaults("/test/named/ciao");
-		Dispatch disp = def.start();
+		def.start();
+		
+		FakeHtmlProducer prod = FakeHtmlProducer.getInstance();
+		assertNotNull(prod);
+		ProducerParameters parameters = prod.getParameters();
+		Map<String, Object> map = parameters.getParameters();
+		assertTrue("Does not contain parameter based on argument name", map.containsKey("name"));
+		assertTrue("Does not contain parameter based on argument class", map.containsKey("string"));
+		assertEquals("ciao", map.get("name"));
+		assertEquals("ciao", map.get("string"));
 	}
 	
 	@Test



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