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/23 13:03:49 UTC
svn commit: r698134 - in /labs/magma/trunk/foundation-website/src:
main/java/org/apache/magma/website/ main/java/org/apache/magma/website/utils/
test/java/org/apache/magma/website/
test/java/org/apache/magma/website/teststuff/
Author: simoneg
Date: Tue Sep 23 04:03:49 2008
New Revision: 698134
URL: http://svn.apache.org/viewvc?rev=698134&view=rev
Log:
LABS-180 : values from and to session gets converted to strings whenever possible
Added:
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/ConvertedSessionHandler.java
Modified:
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HandlerSetup.aj
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/Binder.java
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/InferTestIntoRoot.aj
Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HandlerSetup.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HandlerSetup.aj?rev=698134&r1=698133&r2=698134&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HandlerSetup.aj (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HandlerSetup.aj Tue Sep 23 04:03:49 2008
@@ -16,6 +16,7 @@
*/
package org.apache.magma.website;
+import org.apache.magma.basics.MagmaException;
import org.apache.magma.beans.MagmaBeanSupport;
import org.apache.magma.conversion.Converter;
import org.apache.magma.conversion.Converters;
@@ -57,14 +58,14 @@
Binder.bind(h, request);
h.inited = true;
} catch (Throwable e) {
- e.printStackTrace();
+ throw new MagmaException(e, "Error while setting up {0}", h.getClass());
}
retObj = proceed(h);
try {
Binder.flush(h, request, response);
h.inited = false;
} catch (Throwable e) {
- e.printStackTrace();
+ throw new MagmaException(e, "Error while reading attributes from {0}", h.getClass());
}
} else {
retObj = proceed(h);
Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/Binder.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/Binder.java?rev=698134&r1=698133&r2=698134&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/Binder.java (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/Binder.java Tue Sep 23 04:03:49 2008
@@ -31,6 +31,8 @@
import org.apache.magma.beans.BeanHandler;
import org.apache.magma.beans.MagmaBeanSupport;
import org.apache.magma.beans.PropertyInfo;
+import org.apache.magma.conversion.Converter;
+import org.apache.magma.conversion.Converters;
import org.apache.magma.website.WebHandler;
@@ -49,6 +51,12 @@
name = fromJavaName(name, 7);
HttpSession session = request.getSession();
Object attribute = session.getAttribute(name);
+ if (attribute != null && attribute instanceof String) {
+ Converter converter = property.getConverter();
+ if (converter != null) {
+ attribute = converter.fromString((String)attribute);
+ }
+ }
handler.setValue(property.getName(), attribute);
} else if (name.startsWith("header")) {
name = fromJavaName(name, 6);
@@ -101,6 +109,12 @@
if (value == null) {
session.removeAttribute(name);
} else {
+ if (value != null) {
+ Converter converter = Converters.getConverterFor(value.getClass());
+ if (converter != null) {
+ value = converter.toString(value);
+ }
+ }
session.setAttribute(name, value);
}
} else if (name.startsWith("header")) {
@@ -113,6 +127,7 @@
name = fromJavaName(name, 6);
if (cookies == null)
cookies = request.getCookies();
+ if (cookies == null) continue;
boolean found = false;
for (Cookie cookie : cookies) {
if (cookie.getName().equals(name)) {
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=698134&r1=698133&r2=698134&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 Tue Sep 23 04:03:49 2008
@@ -592,5 +592,34 @@
mock.assertIsSatisfied();
}
+
+ @Test
+ public void sessionConversion() throws Exception {
+ Mockery mock = new Mockery();
+
+ final HttpServletRequest req = mock.mock(HttpServletRequest.class);
+ final HttpServletResponse resp = mock.mock(HttpServletResponse.class);
+ final HttpSession session = mock.mock(HttpSession.class);
+ final MockServletOutputStream out = new MockServletOutputStream();
+
+ mock.checking(new Expectations() {{
+ one(req).getPathInfo(); will(returnValue("/testSession/setUser"));
+ one(req).getContextPath(); will(returnValue(""));
+ one(req).getServletPath(); will(returnValue(""));
+ allowing(req).getSession(); will(returnValue(session));
+ one(session).getAttribute("user"); will(returnValue("Massimo"));
+ one(req).setAttribute("__magma_url","/testSession/setUser");
+ allowing(req).getAttribute("__magma_url"); will(returnValue("/testSession/setUser"));
+ one(session).getAttribute("__magma_lastmain"); will(returnValue(null));
+ one(session).setAttribute("user", "Simone");
+ one(session).setAttribute("__magma_lastmain", "/testSession/setUser");
+ allowing(resp).getOutputStream(); will(returnValue(out));
+ }});
+
+ Dispatch disp = new Dispatch();
+ disp.doGet(req, resp);
+
+ mock.assertIsSatisfied();
+ }
}
Added: labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/ConvertedSessionHandler.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/ConvertedSessionHandler.java?rev=698134&view=auto
==============================================================================
--- labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/ConvertedSessionHandler.java (added)
+++ labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/ConvertedSessionHandler.java Tue Sep 23 04:03:49 2008
@@ -0,0 +1,28 @@
+package org.apache.magma.website.teststuff;
+
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.WebHandler;
+
+public class ConvertedSessionHandler extends WebHandler {
+
+ private Person sessionUser = null;
+
+ public Person getSessionUser() {
+ return sessionUser;
+ }
+
+ public void setSessionUser(Person sessionUser) {
+ this.sessionUser = sessionUser;
+ }
+
+ public HtmlProducer doSetUser() {
+ this.sessionUser = Person.getPerson("Simone");
+ return new FakeHtmlProducer();
+ }
+
+ public HtmlProducer doUnsetUser() {
+ this.sessionUser = null;
+ return new FakeHtmlProducer();
+ }
+
+}
Modified: labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/InferTestIntoRoot.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/InferTestIntoRoot.aj?rev=698134&r1=698133&r2=698134&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/InferTestIntoRoot.aj (original)
+++ labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/teststuff/InferTestIntoRoot.aj Tue Sep 23 04:03:49 2008
@@ -24,6 +24,10 @@
return new SimpleWebHandler();
}
+ public ConvertedSessionHandler RootWebHandler.handleTestSession() {
+ return new ConvertedSessionHandler();
+ }
+
public AuxiliaryWebHandler RootWebHandler.handleAux() {
return new AuxiliaryWebHandler();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org